我知道參數字段(如下面示例中的x
)的行爲與普通字段相同;所以你可以參考它們的方法:Scala的參數字段和構造函數參數
class Test(val x: Int) { // x is a parametric field
override def toString = "Test: " + x;
}
但是,即使你刪除掉關鍵詞val
,該代碼仍然編譯(並期待與.class
輸出,x
仍然是類的成員)。所以我想知道,參數字段(即上面的val x: Int
)和構造函數參數(x: Int
)之間有什麼區別?
(在Java在我的後腦勺,我本來期望像x
到不包括像toString
的方法構造的範圍。)
我相信'x'仍然是如果在至少有一個方法中引用了該成員,則不管它是否帶有'val'前綴。 – adelbertc