我刚刚开始使用 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 属性构造我的新对象...正如您所看到的,这里的构造函数以任何顺序接受任意数量的对象属性。
所以在 Scala 中举一个非常简单的例子:
case class Customer(
val id: Long = 0,
val name: String = ""
)
我知道我可以这样做:
val customer = Customer(0, "company")
但我想这样做:
val customer = Customer{ name = "company" }
所以我最终不会有 50 个构造函数。
可能吗?如何?