2016-04-06 117 views
2

在Scala中,您可以編寫這樣的代碼。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 
} 

我的問題是 「是他們更好的方式來寫我的科特林代碼?」

回答

8

您可以headtail屬性:

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 
} 
相關問題