Scala选项等同于callIfNotEmpty

BAR*_*BAR 3 scala optional

是否有任何Option功能相当于:

def callIfNotEmpty[T](option: Option[T], fun: (T) => Unit): Unit = option match {
    case Some(x) => fun(x)
    case None =>
}
Run Code Online (Sandbox Code Playgroud)

这可以称为:

option.callIfNotEmpty((optionValue) => fun(optionValue))
Run Code Online (Sandbox Code Playgroud)

Ben*_*ich 9

尝试使用foreach.例如:

option.foreach(println)
Run Code Online (Sandbox Code Playgroud)

来自文档:

final def foreach[U](f: (A) ? U): Unit

将给定的过程f应用于选项的值(如果它是非空的).

Option代码顶部甚至还有一条评论:

以使用最习惯的方法scala.Option的实例是把它作为收藏品或单子和使用map,flatMap,filter,或foreach

回想一下,Option可以隐式转换为a Iterable,因此您可以使用通常用于集合的任何内容!

  • 我还想在`Option`实例上使用`fold`方法,以便在`Option`为空时需要表达式返回默认值,但是你想要为非空情况返回一个函数结果. (2认同)