我有一个字符串选项,比如O,它可以是空的。还有一个条件,比如cond。我的要求是,如果cond为true,则构造O内部值的Option,否则为None。我这样做:
Option.unless(cond)(o.getOrElse(None))
这是一种正确的功能方式吗?或者有更好/更干净/更容易理解的方法?
正如评论中所指出的,答案是使用filter
:
o.filter(_ => cond)
filter
中的条件不必使用传递给它的值,但可以是任何返回布尔值的表达式。