我已经在多个地方下面的代码在我的应用的情况下,部分功能避免默认逻辑
(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