我实际上不清楚以下是视图还是上下文绑定。还不清楚自引用方面(重新引用模型)正在做什么;):
abstract class Model[M <: Model[M]] extends Transformer {
对“&lt ;: Model [M]”的含义的解释将不胜感激。
答案 0 :(得分:2)
<:
既不是视图也不是上下文绑定,而是类型绑定。
下面是如何使用自引用类型边界的扩展示例。
类ModelA
使用限制性更强的类型绑定M <: ModelA[M]
,以使方法fooN
起作用。 ModelA2
仍然可以ModelA[ModelA1]
,但不能ModelA[ModelB1]
。另一方面,类ModelB
不会进一步限制类型范围,因此ModelB2
可以扩展ModelB[ModelA1]
。方法bar1
和bar2
限制类型绑定或参数model
,具体取决于transform
和bar
方法的调用顺序{ {1}}。
model