在 GitHub 上編輯此頁面

已移除:類別陰影

到目前為止,Scala 2 允許使用類似這樣的模式

class Base {
  class Ops { ... }
}

class Sub extends Base {
  class Ops { ... }
}

Scala 3 以錯誤訊息拒絕此模式

6 |      class Ops {  }
  |            ^
  |class Ops cannot have the same name as class Ops in class Base
  | -- class definitions cannot be overridden

問題在於兩個 Ops 類別看起來像一個覆寫另一個,但 Scala 2 中的類別無法被覆寫。為了保持乾淨(及其內部運作一致),Scala 3 編譯器會強制您重新命名內部類別,使其名稱不同。

更多詳細資訊