Supposons que vous avez une liste (1, "1"), elle est tapée Liste [Tout], ce qui est bien sûr correct et attendu. Maintenant, si je mappe la liste comme ceciType de collection Scala pour le filtre
scala> List(1, "1") map {
| case x: Int => x
| case y: String => y.toInt
| }
le type résultant est List [Int] qui est également attendu. Ma question est de savoir s'il y a un équivalent pour mapper le filtre car l'exemple suivant donnera une liste [Any]. Est-ce possible? Je suppose que cela pourrait être résolu à la compilation et peut-être pas à l'exécution?
scala> List(1, "1") filter {
| case x: Int => true
| case _ => false
| }
Pourquoi est-ce seulement possible avec un garde? –
Désolé, c'était un commentaire vraiment stupide. Mais pourquoi filter() ne génère pas de résultat comme partialMap? –
@Joa 'filter' ne change pas le type d'une collection, car elle ne modifie pas ses éléments. –