我需要这样的东西:
class MyClass(a: String = "", b: String = "") {
def a = this.a
def b = if(this.b.isEmpty) this.a else this.b
}
我可以用某种方式重用构造函数参数的名称吗?我需要这个,因为我想在构造函数调用中使用命名参数,并且仍然自定义同名属性的输出。
答案 0 :(得分:5)
在主构造函数中使用其他名称,并在辅助构造函数中使用所需的名称:
class MyClass private(_a: String, _b: String, _c: Any) { // _c is a dummy
def this(a: String = "", b: String = "") = this(a, b, null)
def a = _a
def b = if(_b.isEmpty) _a else _b
}