1

我看到以下代码:

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

这是否等同于:

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

我问是因为我很难在 Scalaz 上为这种.option方法找到 doco。

4

1 回答 1

4

不,此代码等效于:

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

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

请参阅Scalaz文档

Some如果cond是,则返回给定的参数trueNone否则。

另请参阅Scalaz 备忘单

(1 < 10) option 1 assert_=== 1.some
于 2014-06-25T06:35:16.203 回答