Scalaでは、このような機能をオブジェクトプライベート変数と見なします。あまりリッチでないJavaのバックグラウンドから、必要に応じてすべてを閉じ(プライベートにし)、開く(アクセサを提供する)ことを学びました。Scalaはさらに厳密なアクセス修飾子を導入しています。デフォルトで常に使用する必要がありますか?または、同じクラスのオブジェクトでもフィールド値の変更を明示的に制限する必要がある一部の特定の場合にのみ使用する必要がありますか?つまり、どのように選択すればよいですか
class Dummy {
private var name = "default name"
}
class Dummy {
private[this] var name = "default name"
}
2番目の方がより厳格で好きですが、常に使用するべきですか、それとも強い理由がある場合にのみ使用するべきですか?
編集:ここに表示されて private[this]
いるように、一部のサブケースがあり、代わりにthis
「パッケージ、クラス、またはシングルトンオブジェクト」などの他の修飾子を使用できます。だから私はそれをいくつかの特別な場合のために残しておきます。