在Java中,如果变量被形式参数隐藏,我们可以在一个方法中扩展当前范围,以引用变量this
。一个典型的例子就是我们在构造函数中所做的事情:
class A {
int i;
A(int i) { this.i = i; }
}
现在,Scala中有类似的技巧吗?例如,我有这样的定义:
class A(i: Int) {
val i = i; // ?
}
一个简单的解决方案是将其中一个参数重命名为其他参数(比如在C ++中使用下划线),但我想避免这种情况。
这有什么替代方案吗?
提前致谢!
答案 0 :(得分:5)
是否完全相同?然后只需将其声明为val
(或var
):
class A(val i: Int) {}
它不完全一样吗?然后你将不得不使用两个名字。