ScalaでOptionsを試してみているときに、この特有の問題に遭遇しました。
私は次のようにList[Option[Int]]を作成することから始めました。
scala> List(Some(1),Some(2),None,Some(3))
res0: List[Option[Int]] = List(Some(1), Some(2), None, Some(3))
次に、次のように、res0のリストのエントリに1への加算をマップしようとしました。
scala> res0 map (_ + 1)
これは私にエラーを与えました:
<console>:9: error: type mismatch;
found : Int(1)
required: String
res0 map (_ + 1)
^
次に、次のようにエントリに追加をflatMappingしてみました。
scala> res0 flatMap (_ + 1)
これは私に同じエラーを与えました:
<console>:9: error: type mismatch;
found : Int(1)
required: String
res0 flatMap (_ + 1)
^
しかし、次のようなres0.flatMap(r => r)
結果でうまく機能します。
res9: List[Int] = List(1, 2, 3)
エントリを1に追加すると、mapとflatMapの両方で失敗する理由を誰かに教えてもらえますか?