2
我只是剛剛開始在Scala中,想知道是否可以創建一個具有不可變屬性和默認值的類,並且我們可以啓動在構造函數中傳遞任何屬性值:缺少參數的調用構造函數
因此,例如在JavaScript中以下是可能的(最終結果不會是一成不變的,但你的想法):
var myObj = function(params){
this.a = params.a || 'default a';
this.b = params.b || 'default b';
this.c = params.c || 'default c';
};
new myObj({c:'override c', b:'override b'});
,我會得到我的新對象,使用默認值和新構造b和c屬性...正如你所看到的,這裏的構造函數以任意順序接受任意數量的對象屬性。
因此,採取一個非常簡單的例子,在斯卡拉:
case class Customer(
val id: Long = 0,
val name: String = ""
)
我知道我能做到這一點:
val customer = Customer(0, "company")
,但我想這樣做:
val customer = Customer{ name = "company" }
所以我最終沒有50個構造函數。
可能嗎?怎麼樣?
+1這很容易......謝謝! – karlipoppins