自参考箭头后我可以写什么?
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
的情况下实例化。
我明白自我类型的结果是什么
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
的情况下实例化。