自参考箭头后我可以写什么?

What can I write after self reference arrow?

我明白自我类型的结果是什么

trait SpellChecker {
  self: RandomAccessSeq[char] =>
  ...
}

来自 http://www.markthomas.info/blog/92

据我了解它说 "the object instantiated from this trait is also of type RandomAccessSeq[char]"。是吗?

我的问题:=> 后面可以写什么,它是什么意思?我注意到在 =>.

之后写 AnyRef 时没有出现编译器错误

My question: What can I write after the =>

任何东西。

and what does it mean?

表示自类型注解结束。之后就是普通的trait body,就好像self-type注解根本就没有一样

trait A { ta: B =>
  // code
}

在这个例子中 ta 是一个 this 别名。它作为 A.this 的 shorthand 很有用,因为当您需要从其他地方引用此代码时。

因为ta(即这段代码)属于B类型,B的所有方法和成员数据都在范围内并且可以免费获得。这成为编译器将强制执行的契约:因为 A 代码可以引用 B 代码,所以 A 不能在没有 B 的情况下实例化。