我已經在多個地方下面的代碼在我的應用的情況下,部分功能避免默認邏輯
(i: Option) => {
case Some(i) => // doSomething with i
case None =>
}
中的doSomething將在每個位置不同,但任何時候,我有一個無我不想做任何東西。
有沒有一種簡單的方法,以避免使用implicits或以其它方式使用case None =>
?
我已經在多個地方下面的代碼在我的應用的情況下,部分功能避免默認邏輯
(i: Option) => {
case Some(i) => // doSomething with i
case None =>
}
中的doSomething將在每個位置不同,但任何時候,我有一個無我不想做任何東西。
有沒有一種簡單的方法,以避免使用implicits或以其它方式使用case None =>
?
您可以使用map
或foreach
- 如果您的Option
是None
,這些將不會執行任何操作。兩者之間的區別是,map
將返回Option
而foreach
回報Unit
iOpt.map(i => /* doSomething with i */) // does nothing and returns a None if iOpt is a None
如果你放棄的結果,那麼你可以使用foreach
:
o.foreach(i => doSomething(i))
如果你需要的結果doSomething
,然後用map
:
o.map(i => doSomething(i))
這是首選的方法。 foreach專門用於輔助效果;地圖是你正在做的變換,並希望保留一個輸出。 – Damiya