Wiki

Clone wiki

bolts / Ru / Option

Перейти к оглавлению * In English

Option

Класс Option либо хранит значение (и тогда он называется Some(value)), или не хранит ничего (и называется None). Пример ситуации, когда нужен Option: делается запрос к базе, который может вернуть максимум одно значение, и пустой результат не является ошибкой. В этом случае удобно тип возвращаемого значения объявить как Option.

Часто в коде используется null как признак отсутствия возвращаемого значения. Это ровно тот случай, когда удобно использовать Option.

Методы класса Option

... предназначены для удобного извлечения значения из Option.

get() возвращает значение из Some или кидает исключение в случае None.

getOrElse(defaultValue) возвращает значение из Some или возвращает defaultValue

isEmpty, isDefined прореряют Some или None.

getOrThrow(String message) работает как get(), но выкидывает исключение с указанным сообщением в случае None

Сконструировать Option можно вызвав статические методы some(value) или none().

Option в других языках

Тип Option присутствует во многих современных средах языках программирования (Scala, OCaml, Haskell, C++/Boost).

Updated