在Scala中简化选项创建以避免条件

时间:2016-08-12 08:53:42

标签: scala

现在我使用Option条件创建if

if (lastTime > 0) 
  Some(lastTime) 
else 
  None

是否可以简化这种表达?

2 个答案:

答案 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)。