我的应用程序中的多个位置都有以下代码
(i: Option) => {
case Some(i) => // doSomething with i
case None =>
}
doSomething在每个位置都会有所不同,但只要我有“无”,我就不想做任何事情。
是否有一种简单的方法可以避免使用隐含或其他方式使用case None =>
?
答案 0 :(得分:4)
如果您放弃了结果,则可以使用foreach
:
o.foreach(i => doSomething(i))
如果您需要doSomething
的结果,请使用map
:
o.map(i => doSomething(i))
答案 1 :(得分:2)
您可以使用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