я столкнулся со следующей странный вопрос, имея возможность в вложенных коллекциях:Weird типа стирания для варианта в вложенной коллекции
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]])}}
Я предполагаю, что это может быть проблема с каким-то типом стиранием вдоль пути, но это ожидаемый поведение в Скала? Кто-нибудь знает, что именно происходит?