2012-01-11 51 views
3

可能重複:
What do <:<, <%<, and =:= mean in Scala 2.8, and where are they documented?<:<斯卡拉中的意思是什麼?

例如在這個例子中,從斯卡拉臂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) 
    } 
+2

http://www.scala-lang.org/docu/files/ScalaReference.pdf – Jontatas 2012-01-11 13:09:37

+1

兩個千年其他副本,請參閱[這裏](http://symbolhound.com/?q=%3C% 3A%3C)。 – 2012-01-11 20:20:10

回答

3

<:<(以及類似的奇形怪狀的結構)在Predef.scala(源在scala-lang.org)的定義,這可能是爲制定最好的資源是什麼,他們是。

一般來說,像這樣的類可以用來提供特定方法範圍內的類型參數的進一步界限。 <:<特別用於要求RTraversableOnce[B]的子類型。

從PREDEF的描述是:

爲了限制任何抽象類型T這是在範圍中的方法的 參數列表(而不僅僅是該方法本身的類型參數)簡單地 添加T <:< U類型的隱式自變量,其中U是所需的 上限;或下限,請使用:L <:< T,其中L是 所需的下限。