从Option case类中提取Option时如何指定默认值

mpl*_*lis 1 scala

如果我将案例类定义为:

case class Foo(bar: Option[String])
Run Code Online (Sandbox Code Playgroud)

和可变baz: Option[Foo],什么是最习惯的方法来提取barbaz,而像一个空字符串提供默认值?

现在,我有

baz.fold("")(_.bar.getOrElse(""))
Run Code Online (Sandbox Code Playgroud)

但是在那里有两个空字符串让我觉得有更好的方法.

Mic*_*jac 6

怎么样:

baz.flatMap(_.bar).getOrElse("")
Run Code Online (Sandbox Code Playgroud)

或者根据@ vptheron的评论:

baz.flatMap(_.bar).fold("")(identity)
Run Code Online (Sandbox Code Playgroud)