Метод map класса Option
Метод map применяет функцию к значению,
содержащемуся внутри Some, и возвращает
новый Option с преобразованным значением.
Если исходный Option равен None,
то метод возвращает None, не вызывая
переданную функцию. Параметром метод принимает
замыкание или функцию, которая получает значение
типа T и возвращает значение типа U.
Синтаксис
Option::map(self, f)
Пример
Давайте преобразуем число внутри Some,
умножив его на 2:
fn main()
{
let opt = Some(5);
let res = opt.map(|x| x * 2);
println!("{:?}", res);
}
Результат выполнения кода:
Some(10)
Пример
Давайте применим map к значению
None и убедимся, что функция
не вызывается:
fn main()
{
let opt: Option<i32> = None;
let res = opt.map(|x| x * 2);
println!("{:?}", res);
}
Результат выполнения кода:
None
Пример
Давайте преобразуем строку внутри Some
в её длину:
fn main()
{
let opt = Some("abcde");
let res = opt.map(|s| s.len());
println!("{:?}", res);
}
Результат выполнения кода:
Some(5)