considerare un Array[Any]
Scala raccogliere gli oggetti di un tipo da una raccolta
val a = Array(1,2,"a")
a: Array[Any] = Array(1, 2, a)
Possiamo raccogliere tutti gli elementi di tipo Int
come questo,
a.collect { case v: Int => v }
res: Array[Int] = Array(1, 2)
Anche se come definire una funzione che raccoglie articoli di un determinato tipo, avendo provato senza successo questo,
def co[T](a: Array[Any]) = a.collect { case v: T => v }
warning: abstract type pattern T is unchecked since it is eliminated by erasure
che offre
co[Int](a)
ArraySeq(1, 2, a)
co[String](a)
ArraySeq(1, 2, a)
Putting elementi di tipo diverso, come numeri interi e stringhe in una collezione non è idiomatica in lingue staticamente tipizzati come Scala. – Jesper
@Jesper sono completamente d'accordo, utilizzando scala.language.dynamics – elm