j'ai rencontré la question bizarre suivante lorsque l'option ayant dans les collections imbriquées:effacement de type étrange pour l'option dans la collection imbriquée
val works: Array[Option[Int]] = Array(1)
.map { t => Some(t)}
val fails: Array[Array[Option[Int]]] = Array(Array(1))
.map { ts => ts.map { Some(_)} }
// error: type mismatch; found : Array[Array[Some[Int]]] required: Array[Array[Option[Int]]]
val worksButUgly: Array[Array[Option[Int]]] = Array(Array(1))
.map { ts => ts.map { case t => (Some(t).asInstanceOf[Option[Int]])}}
J'imagine que ce peut être un problème avec un certain effacement de type le long du chemin, mais est-il l'attendu comportement à Scala? Est-ce que quelqu'un sait ce qui se passe exactement?