[this]修飾子:Scala 3で廃止予定の機能(12)

Scala 3 (Dotty 0.26.0-RC1)
最終更新:2020年9月20日

[AD] scalapediaでは記事作成ボランティアを募集しています

この記事では、Scala 3で廃止される[this]修飾子について解説します。

[this] 修飾子は廃止されます。

Scala 3では、private[this] および protected[this] アクセス修飾子は非推奨となり、段階的に廃止されます。

コンパイラはprivateメンバに対してthisを介してのみアクセスできるものとして推論するようになりました。
つまりprivateメンバは、かつてprivate[this]と宣言されていたときと同様の扱いを受けることになります。

また、protected[this]の代替はありません。

[this]修飾子の歴史的意義

かつては、これらの修飾子は以下の理由で必要とされていました。

  • ゲッターとセッターの生成を避けるため
  • private[this]の下のコードを変位チェックから除外するため
    • Scala 2ではprotected[this]も除外していますが、これは不健全であることが判明したため削除されました

移行について

[this]修飾子は非推奨で、将来的に廃止されることになっていますので、新規に使用することはせず、既存の箇所からは適宜取り除いておきましょう。

サイト内検索