15
請看下面的代碼。斯卡拉初始化行爲
trait MyTrait { val myVal : String }
class MyClass extends MyTrait { val myVal = "Value" }
class MyClass2(val myVal: String) extends MyTrait
爲什麼初始化訂購MyClass
和MyClass2
情況有什麼不同? 的MyClass
構造將作爲
MyClass() {
MyTrait$class.$init$(this);
myVal = value
}
的MyClass2
構造將是
MyClass2(String myVal) { this.myVal = myVal; MyTrait$class.$init$(this) }
我覺得初始化順序應爲MyClass2
的構造函數,同樣的兩種情況。
最終我看到了爲什麼Scala初始化一個對象的原因。謝謝你的回答,丹尼爾。 – Dmitry 2010-10-01 14:04:46