简化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同意您的看法。原始代码的可读性比我的好得多