2012-04-01 41 views
2

我看到一段帶有清單語法的Scala代碼,如下所示。我不知道WireFormat在這裏意味着什麼。它對Manifest A增加了什麼約束?這是否意味着類型A必須擴展特性WireFormat?不明確的Scala清單語法

我找不到任何有關此類語法的文檔。

trait WireFormat[A] { 
    def toWire(x: A, out: DataOutput) 
    def fromWire(in: DataInput): A 
} 

class DList[A : Manifest : WireFormat] 
+2

它讀成_takes一個'A',從而出現了一個'Manifest'和'WireFormat'爲'A'_上下文。 – 2012-04-01 16:43:06

回答

4

這是一個context bound。用冒號分隔的兩種類型意味着有兩個隱式參數。

換句話說,它是一樣的:

class DList[A](implicit x: Manifest[A], y: WireFormat[A]) 
+0

關於[上下文邊界和視圖邊界](http://stackoverflow.com/questions/4465948/what-are-scala-context-and-view-bounds)也非常方便。 – 2013-05-30 21:28:18