如果我将案例类定义为:
case class Foo(bar: Option[String])
Run Code Online (Sandbox Code Playgroud)
和可变baz: Option[Foo],什么是最习惯的方法来提取bar从baz,而像一个空字符串提供默认值?
现在,我有
baz.fold("")(_.bar.getOrElse(""))
Run Code Online (Sandbox Code Playgroud)
但是在那里有两个空字符串让我觉得有更好的方法.
怎么样:
baz.flatMap(_.bar).getOrElse("")
Run Code Online (Sandbox Code Playgroud)
或者根据@ vptheron的评论:
baz.flatMap(_.bar).fold("")(identity)
Run Code Online (Sandbox Code Playgroud)