Scalaz .option - 这是什么简写?

时间:2014-06-25 06:26:43

标签: scala scalaz scala-option

我看到以下代码:

val a  = (x: Int) => (x == 1).option(doSomethingUnrealiable(1))

这相当于:

val a  = (x: Int) => if (x == 1) Option(doSomethingUnrealiable(1))

我问,因为我正在努力在Scalaz上找到这个.option方法的doco。

1 个答案:

答案 0 :(得分:4)

不,这段代码相当于:

<...> if (x == 1) Some(doSomethingUnrealiable(1)) else None

if (x == 1) Option(...)的结果类型为Any(就像if (x == 1) Option(...) else ())。

请参阅Scalaz documentation

  

如果Somecond,则返回true中的给定参数,否则返回None

另见Scalaz cheat sheet

(1 < 10) option 1 assert_=== 1.some