Kotlin VS 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 }
你不需要覆盖它们已经定义的尾部和头部,但是在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代码的更好方法吗?”
您可以制作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 }