私は現在、共変および反変の型パラメーター化が 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 }
}
私はこの例を理解しています。しかし、私が理解できないのは、プライベートフィールドが itselt (this) 以外の別のインスタンスからアクセスできるのはどのような場合ですか?
ご協力いただきありがとうございます。