如果我将案例类定义为:
case class Foo(bar: Option[String])
和变量baz: Option[Foo]
,在提供像空字符串这样的默认值时,从bar
中提取baz
的最常用方法是什么?
现在,我有
baz.fold("")(_.bar.getOrElse(""))
但是在那里有两次空字符串让我觉得有更好的方法。
答案 0 :(得分:6)
怎么样:
baz.flatMap(_.bar).getOrElse("")
或者根据@ vptheron的评论:
baz.flatMap(_.bar).fold("")(identity)