parameter - scala type
Significado de dos puntos adicionales en la parametrización de la clase Scala (1)
¿Qué significa [A : Manifest : WireFormat]
en el siguiente código? Es de com.nicta.scoobi.TextInput
(disponible en github). No parece ser ninguno de los límites de tipo habituales.
def fromDelimitedTextFile[A : Manifest : WireFormat]
(path: String, sep: String = "/t")
(extractFn: PartialFunction[List[String], A])
: DList[A] = {
val lines = fromTextFile(path)
lines.flatMap { line =>
val fields = line.split(sep).toList
if (extractFn.isDefinedAt(fields)) List(extractFn(fields)) else Nil
}
}
¿Dónde puedo encontrar más información sobre este tema?
Esto se denomina un límite de contexto. Son azúcar sintáctica para una lista de parámetros implícita:
def meth[A : ContextBound1 : ContextBoundN](a: A)
// ==>
def meth[A](a: A)(implicit evidence: ContextBound1[A], ContextBoundN[A])
Si hay varios límites de contexto de 1 a N, todos se traducen a la misma lista de parámetros. Consulte esta pregunta para obtener una explicación más detallada sobre cómo funcionan y para qué sirven.
Para encontrar tales símbolos, es útil leer el Tutorial de Scala .