一个用于特质A的自类型:trait B trait A { this: B => } 说的是:"A 不能被混合到没有扩展 B 的具体类中。" 另一方面,以下内容:trait B trait A extends B 它表明 "任何(具体或抽象)混合 A 的类也将混合 B"。 这两个语句不是意思相同的吗?Self-type 似乎只是为了创建一种简单的编译时错误的可能性。 我错过了什么吗?
trait A[Self] {this: Self => }
是合法的,trait A[Self] extends Self
不合法。 - Blaisorblade