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

Вариант Ok

Вариант Ok является одним из двух вариантов перечисления Result. Он используется для представления успешного результата выполнения операции и содержит внутри себя значение этого результата. Параметром вариант Ok принимает значение, которое нужно обернуть в успешный результат.

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

Синтаксис

Result::Ok(value) Ok(value)

Пример

Давайте создадим успешный результат с числом 42 и выведем его на экран:

fn main() { let res: Result<i32, &str> = Ok(42); println!("{:?}", res); }

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

Ok(42)

Пример

Давайте напишем функцию, которая возвращает успешный результат при делении, и обработаем его через match:

fn divide(a: i32, b: i32) -> Result<i32, String> { if b == 0 { return Err(String::from("division by zero")); } Ok(a / b) } fn main() { let res = divide(10, 2); match res { Ok(value) => println!("Result: {}", value), Err(e) => println!("Error: {}", e), } }

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

Result: 5

Пример

Давайте извлечём значение из варианта Ok с помощью метода unwrap:

fn main() { let res: Result<&str, &str> = Ok("abcde"); let value = res.unwrap(); println!("{}", value); }

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

"abcde"

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

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