閱讀Value Classes and Universal Traits後,我看了RichInt
的例子。Value Class w /`val`字段
但是,我更改了self
字段以取消val
。
scala> class RichInt(self: Int) extends AnyVal {
| def toHexString: String = java.lang.Integer.toHexString(self)
| }
<console>:7: error: value class parameter must be a val and not be private[this]
class RichInt(self: Int) extends AnyVal {
^
我得到了編譯時錯誤。看來,在該字段中省略val
結果的可訪問性爲private[this]
。
保持與排除val
有什麼意義?我不確定must be a val
究竟意味着什麼。
這個話題似乎是相似的http://stackoverflow.com/questions/17944356/value-classes-introduce-unwanted-public-methods –