Tom*_*icz 8 scala scala-primary-constructor
考虑这两个类以及创建实例的方式:
class Person1(val name: String)
val p1 = new Person1("John");
Run Code Online (Sandbox Code Playgroud)
和:
abstract class Person2 {
val name: String
}
val p2 = new Person2 {
val name = "John"
}
Run Code Online (Sandbox Code Playgroud)
为什么人们更喜欢后者(Person2)版本?每个这样的声明都会导致创建新的子类,而且代码稍微冗长且可读性较差,但是第二个习惯用法在Scala的Programming中多次使用.直接领域有哪些优势?
一个简单的用例是traits,它不能有构造函数参数.