可能重复:
What do <:<, <%<, and =:= mean in Scala 2.8, and where are they documented?
e.g。在这个例子中,来自scala-arm 1.0:
def toTraversable[B](implicit ev: R <:< TraversableOnce[B]): Traversable[B] =
new ManagedTraversable[B,R] {
val resource = self
override protected def internalForeach[U](resource: R, g : B => U) : Unit =
ev(resource).foreach(g)
}
答案 0 :(得分:4)
&LT;:其中(以及类似奇怪的构造)在Predef.scala(scala-lang.org中的源代码)中定义,这可能是解决它们的最佳资源。
通常,类似的类可用于在特定方法范围内提供类型参数的进一步限制。 &LT;:其中特别用于要求R
是TraversableOnce[B]
的子类型。
Predef的描述是:
约束方法中范围内的任何抽象类型T. 参数列表(不仅仅是方法自己的类型参数)简单 添加类型为
T <:< U
的隐式参数,其中U是必需的 上限;或者对于下限,使用:L <:< T
,其中L是 要求下限。