任何人都可以教我使用map
和flatMap
的房屋用例吗?斯卡拉 - 地图和平面地图之间的差异
在Option
的情况下,我知道这两种方法都有各自的签名,def map(A => B): Option[B]
和def flatMap(A => Option[B]): Option[B]
。
所以,我可以通过两种方式获得一些价值:
scala> val a = Some(1).map(_ + 2)
a: Option[Int] = Some(3)
scala> val a2 = Some(1).flatMap(n => Some(n + 2))
a2: Option[Int] = Some(3)
当我写一个方法:,有
def plusTwo(n: Int): Int = n + 2
Some(1).map(plusTwo)
和
def plusTwo(n: Int): Option[Int] = Some(n + 2)
Some(1).flatMap(plusTwo)
之间有什么区别flatMap
可以转换为理解,几乎所有方法都更好价值Option
包装?