我看到以下代码:
val a = (x: Int) => (x == 1).option(doSomethingUnrealiable(1))
这是否等同于:
val a = (x: Int) => if (x == 1) Option(doSomethingUnrealiable(1))
我问是因为我很难在 Scalaz 上为这种.option
方法找到 doco。
我看到以下代码:
val a = (x: Int) => (x == 1).option(doSomethingUnrealiable(1))
这是否等同于:
val a = (x: Int) => if (x == 1) Option(doSomethingUnrealiable(1))
我问是因为我很难在 Scalaz 上为这种.option
方法找到 doco。
不,此代码等效于:
<...> if (x == 1) Some(doSomethingUnrealiable(1)) else None
结果类型if (x == 1) Option(...)
是Any
(就像if (x == 1) Option(...) else ()
)。
请参阅Scalaz
文档:
Some
如果cond
是,则返回给定的参数true
,None
否则。
另请参阅Scalaz 备忘单:
(1 < 10) option 1 assert_=== 1.some