Scala选项:除非与getOrElse一起使用



我有一个字符串选项,比如O,它可以是空的。还有一个条件,比如cond。我的要求是,如果cond为true,则构造O内部值的Option,否则为None。我这样做:

Option.unless(cond)(o.getOrElse(None))

这是一种正确的功能方式吗?或者有更好/更干净/更容易理解的方法?

正如评论中所指出的,答案是使用filter:

o.filter(_ => cond)

filter中的条件不必使用传递给它的值,但可以是任何返回布尔值的表达式。

最新更新