Метод zip класса Option
Метод zip объединяет два значения Option
в одно значение Option, содержащее кортеж из двух
элементов. Если оба исходных значения равны Some,
метод возвращает Some с кортежем внутри. Если хотя
бы одно из значений равно None, метод возвращает
None. Параметром метод принимает второе значение
Option, которое нужно объединить с текущим.
Синтаксис
option1.zip(option2)
Пример
Давайте объединим два значения Some в один кортеж:
fn main()
{
let a = Some(1);
let b = Some(2);
let res = a.zip(b);
println!("{:?}", res);
}
Результат выполнения кода:
Some((1, 2))
Пример
Давайте объединим значение Some со значением
None:
fn main()
{
let a = Some(1);
let b: Option<i32> = None;
let res = a.zip(b);
println!("{:?}", res);
}
Результат выполнения кода:
None
Пример
Давайте объединим два значения None:
fn main()
{
let a: Option<i32> = None;
let b: Option<i32> = None;
let res = a.zip(b);
println!("{:?}", res);
}
Результат выполнения кода:
None
Пример
Давайте объединим два значения Some со строками
в один кортеж:
fn main()
{
let a = Some("abcde");
let b = Some("12345");
let res = a.zip(b);
println!("{:?}", res);
}
Результат выполнения кода:
Some(("abcde", "12345"))