我目前正在研究如何在 Scala 中处理协变和逆变类型参数化。还有一种特殊情况,var 字段必须是 private[this] 才能编译。来自此代码片段中的示例(取自此问题:private[this] vs private):
class Holder[+T] (initialValue: Option[T]) {
// without [this] it will not compile
private[this] var value = initialValue
def getValue = value
def makeEmpty { value = None }
}
我理解这个例子。但是我不明白的是,在什么情况下可以从其他实例访问私有字段而不是 itelt(this)?
谢谢你的帮助。