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

Метод map класса Result

Метод map преобразует успешное значение Ok типа Result, применяя к нему указанную функцию. Если исходный результат равен Err, то метод возвращает его без изменений. Параметром метод принимает замыкание или функцию, которая получает значение из Ok и возвращает новое значение.

Синтаксис

result.map(op)

Пример

Давайте преобразуем успешное значение Ok(5), умножив его на два:

fn main() { let res = Ok::<i32, &str>(5).map(|x| x * 2); println!("{:?}", res); }

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

Ok(10)

Пример

Давайте применим метод map к значению Err("error") и убедимся, что ошибка остаётся без изменений:

fn main() { let res = Err::<i32, &str>("error").map(|x| x * 2); println!("{:?}", res); }

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

Err("error")

Пример

Давайте преобразуем строку в её длину, используя метод map:

fn main() { let res = Ok::<&str, &str>("abcde").map(|s| s.len()); println!("{:?}", res); }

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

Ok(5)

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

  • метод map_err,
    который преобразует значение ошибки Err
  • метод map_or,
    который преобразует Ok или возвращает значение по умолчанию
  • метод and_then,
    который применяет функцию, возвращающую Result
  • метод Result,
    который представляет результат операции с возможной ошибкой
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить