2016-08-12 23 views
1

現在我使用if條件創建Option簡化選項創建以避免條件

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

是有可能簡化此類表達?

+2

我真的懷疑,使用「過濾器/查找」的兩個答案比條件更具可讀性和性能。 –

+0

@ om-nom-nom同意你的意見。原始代碼的可讀性比我的好得多 –

回答

5

Option(lastTime).filter(_ > 0)

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)定義。