【发布时间】:2013-01-29 08:38:53
【问题描述】:
在尝试使用 scala 中的选项时,我遇到了这个特殊的问题。
我开始创建一个 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)
^
然后我尝试对条目进行平面映射,如下所示:
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 都失败?
【问题讨论】: