任何人都可以教我使用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
包裝?