Me gustaría implementar un método que requiera arbitrariamente Seq[T]
y devuelve Seq[T]
también. Pero cuando se proporciona String
también debe devolver String
.Método que toma Seq [T] para devolver String en lugar de Seq [Char]
Pasando String
trabajos debido a alguna conversión implícita de String
a WrappedString extends IndexedSeq[Char]
, pero me da Seq[Char]
a cambio. ¿Es posible recuperar String
?
val sx: Seq[Int] = firstAndLast(List(1, 2, 3, 4))
val s1: Seq[Char] = firstAndLast("Foo Bar")
val s2: String = firstAndLast("Foo Bar") //incompatible types error
def firstAndLast[T](seq: Seq[T]) = Seq(seq.head, seq.last)
firstAndLast()
aplicación es irrelevante, es sólo un ejemplo.
Estoy bastante seguro de que no funcionará con matrices; no tiene ningún manifiesto definido –
Funciona, porque el 'ClassManifest' necesario se proporciona implícitamente al método que entrega el' CanBuildFrom' apropiado, 'scala.Array.canBuildFrom'. –
Esto debería ser más fácil con Miles ''FromRepr', supongo. –