这经常让我感到困惑:
class Test(i: Int) {
val this.i = i;
val this.ii = i; // :(
}
Run Code Online (Sandbox Code Playgroud)
我想以同样的方式声明我的所有val/vars,我真的不明白为什么这会扰乱Scala编译器.在其他地方这个执行如预期,除了这里.
您在该范围内声明的每个变量都将成为一个字段.所以它不保证特殊的语法.
class Test(_i: Int) {
val i = _i
val ii = i
}
Run Code Online (Sandbox Code Playgroud)
甚至更好:
class Test(val i: Int) {
val ii = i
}
Run Code Online (Sandbox Code Playgroud)
你可以用任何一种方式编写它,这取决于你是想要更清晰和更小的代码还是"一致"的代码.