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

Метод 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"))

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

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