РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
587 of 1245 menu

Метод or_else

Метод or_else возвращает значение Some, если оно присутствует в Option. Если же Option равен None, метод вызывает переданное замыкание и возвращает результат его выполнения. Параметром метод принимает замыкание, которое не получает аргументов и должно вернуть новый Option.

Метод удобен, когда нужно лениво вычислить запасное значение только при отсутствии основного.

Синтаксис

option.or_else(f)

Пример

Давайте применим or_else к значению Some и выведем результат:

fn main() { let res = Some("abcde").or_else(|| Some("12345")); println!("{:?}", res); }

Результат выполнения кода:

Some("abcde")

Пример

Давайте применим or_else к значению None и выведем результат:

fn main() { let res: Option<&str> = None; let res = res.or_else(|| Some("12345")); println!("{:?}", res); }

Результат выполнения кода:

Some("12345")

Пример

Давайте применим or_else к значению None с замыканием, которое возвращает None:

fn main() { let res: Option<&str> = None; let res = res.or_else(|| None); println!("{:?}", res); }

Результат выполнения кода:

None

Смотрите также

  • класс Option,
    который представляет опциональное значение
  • метод and_then,
    который применяет функцию к значению Some
  • метод ok_or_else,
    который преобразует Option в Result с ленивым вычислением ошибки
  • метод map,
    который преобразует значение внутри Some
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить