Vorrei implementare il metodo che richiede un numero arbitrario di Seq[T]
e restituisce anche Seq[T]
. Ma quando viene fornito il numero String
, è necessario restituire anche String
.Metodo che esegue Seq [T] per restituire String anziché Seq [Char]
Passando String
lavori a causa di qualche conversione implicita da String
a WrappedString extends IndexedSeq[Char]
, ma ho Seq[Char]
in cambio. È possibile ottenere String
indietro?
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()
attuazione è irrilevante, è solo un esempio.
Sono abbastanza sicuro che non funzionerà con gli array; non hai manifest definito –
Funziona, perché il necessario 'ClassManifest' viene fornito implicitamente al metodo che fornisce l'appropriato' CanBuildFrom', 'scala.Array.canBuildFrom'. –
Questo dovrebbe essere più facile con "FromRepr" di Miles, immagino. –