Scalaz .option — для чего это сокращение?

#scala #scalaz #scala-option

#scala #scalaz #scala-option

Вопрос:

Я вижу следующий код:

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

Эквивалентно ли это:

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

Я спрашиваю, потому что я изо всех сил пытаюсь найти doco на Scalaz для этого .option метода.

Ответ №1:

Нет, этот код эквивалентен:

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

Тип результата if (x == 1) Option(...) — это Any (точно так if (x == 1) Option(...) else () же).

Смотрите Scalaz документацию:

Возвращает заданный аргумент в Some if cond is true , None в противном случае.

Смотрите также шпаргалку Scalaz:

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

Комментарии:

1. Спасибо — есть какие-либо документы по функции ScalaZ .option, кроме чтения исходного кода библиотеки?