Kotlin VS Scala:使用主构造函数参数实现方法

3
在Scala中,您可以编写以下代码。
trait List[T] {
   def isEmpty() :Boolean
   def head() : T
   def tail() : List[T]
}

class Cons[T](val head: T, val tail: List[T]) :List[T] {
   def isEmpty = false
}

您不需要覆盖tail和head,它们已经定义好了。但在Kotlin中,我必须编写这些代码。

interface List<T> {
   fun isEmpty() :Boolean
   fun head() : T
   fun tail() : List<T>
}

class Cons<T>(val head: T, val tail: List<T>) :List<T> {
    override fun isEmpty() = false
    override fun head() = head
    override fun tail() = tail
}

我的问题是:“有没有更好的方法编写我的Kotlin代码?”

1个回答

8
您可以创建“head”和“tail”属性:
interface List<T> {
   val head: T
   val tail: List<T>

   fun isEmpty(): Boolean
}

class Cons<T>(override val head: T, override val tail: List<T>) : List<T> {
    override fun isEmpty() = false
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接