我知道参数字段(如下x例所示)的行为与普通字段相同; 所以你可以在方法中引用它们:
class Test(val x: Int) { // x is a parametric field
override def toString = "Test: " + x;
}
Run Code Online (Sandbox Code Playgroud)
但是,如果删除关键字val,代码仍会编译(并且查看和.class输出x仍然是类的成员).所以我想知道,参数字段(即val x: Int上面的)和构造函数参数(x: Int)之间有什么区别?
(在我的脑海中,我希望构造函数的范围x可能不包括类似的方法toString.)
Nic*_*las 10
没有val关键字,您的代码类似于:class Test (private[this] val x: Int) { ... }.因此,x可以在全班使用,但不能从外部使用.
在你的问题中没有提到它,但它也可能有用:在case class默认修饰符中val.因此case class Test(x: Int) {...}相当于case class (val x: Int) {...}.
| 归档时间: |
|
| 查看次数: |
774 次 |
| 最近记录: |