已删除:类阴影
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 编译器强制您重命名内部类,以便它们的名称不同。