2012-04-01 4 views
2

Я увидел фрагмент кода Scala с синтаксисом манифеста следующим образом. Я не знаю, что здесь означает WireFormat. Какое ограничение оно добавляет к манифесту А? Означает ли это, что тип A должен расширять черту WireFormat?Нечеткий синтаксис манифеста Scala

Я не мог найти документа о таком синтаксисе.

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

class DList[A : Manifest : WireFormat] 
+2

Прочитайте как _takes в 'Ā' таким образом, что есть' Manifest' и 'WireFormat' контекст для' A'_. –

ответ

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) также очень удобно. –

Смежные вопросы