简化Scala中的选项创建以避免出现条件

简化Scala中的选项创建以避免出现条件,scala,Scala,现在,我使用if条件创建选项: if (lastTime > 0) Some(lastTime) else None 是否可以简化此类表达式?选项(lastTime)。筛选(\u>0)选项(lastTime)。筛选(\u>0)此外,您可以向布尔值添加扩展方法: implicit class BooleanExtension(val bool: Boolean) extends AnyVal { def option[T](value: T): Option[T] =

现在,我使用
if
条件创建
选项

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

是否可以简化此类表达式?

选项(lastTime)。筛选(\u>0)

选项(lastTime)。筛选(\u>0)
此外,您可以向
布尔值添加扩展方法:

implicit class BooleanExtension(val bool: Boolean) extends AnyVal {
  def option[T](value: T): Option[T] =
    if (bool) Some(value) else None
}
用法:
(lastTime>0)。选项(lastTime)


如果您正在使用Scalaz库,它已经定义了此扩展方法(
选项)

此外,您还可以向
布尔值添加扩展方法:

implicit class BooleanExtension(val bool: Boolean) extends AnyVal {
  def option[T](value: T): Option[T] =
    if (bool) Some(value) else None
}
用法:
(lastTime>0)。选项(lastTime)


如果您使用的是Scalaz库,它已经定义了这个扩展方法(
选项
)。

我真的怀疑使用“筛选/查找”的两个答案是否比if条件更具可读性和性能。@om nom nom同意您的看法。原始代码的可读性比我的好得多。我真的怀疑使用“filter/find”的两个答案是否比if条件更具可读性和性能。@om nom nom同意您的看法。原始代码的可读性比我的好得多