现在我使用Option
条件创建if
:
if (lastTime > 0)
Some(lastTime)
else
None
是否可以简化这种表达?
答案 0 :(得分:5)
Option(lastTime).filter(_ > 0)
答案 1 :(得分:1)
此外,您可以向Boolean
s添加扩展方法:
implicit class BooleanExtension(val bool: Boolean) extends AnyVal {
def option[T](value: T): Option[T] =
if (bool) Some(value) else None
}
用法:(lastTime > 0).option(lastTime)
如果您使用的是Scalaz库,则已经定义了此扩展方法(option
)。