ネストされたコレクション内のオプションを持ったとき、私は、次の奇妙な問題が発生しました:奇妙な型消去
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]])}}
私はそれが道に沿っていくつかの型消去に問題がある可能性があり想像するが、それは期待されていますScalaの動作?誰が正確に何が起こるか知っていますか?