2

私は現在、共変および反変の型パラメーター化が 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) 以外の別のインスタンスからアクセスできるのはどのような場合ですか?

ご協力いただきありがとうございます。

4

1 に答える 1

5

メンバーがプレーン プライベートの場合、同じクラスの他のインスタンスからアクセスできます。サフィックスは、[this]それを含むインスタンスにのみ表示されます。

于 2012-12-31T13:18:26.520 に答える