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

Метод try_into

Метод try_into выполняет преобразование между типами, которое может завершиться ошибкой. В отличие от метода into, который всегда успешен, метод try_into возвращает тип Result, содержащий либо успешно преобразованное значение, либо ошибку. Метод не принимает параметров и вызывается на значении, которое нужно преобразовать. Для использования метода необходимо, чтобы целевой тип реализовывал типаж TryFrom.

Синтаксис

let res: TargetType = value.try_into()?;

Пример

Давайте попробуем преобразовать число типа i32 в тип u8. Так как число 100 помещается в диапазон типа u8, преобразование пройдёт успешно:

fn main() { let num: i32 = 100; let res: Result<u8, _> = num.try_into(); match res { Ok(val) => println!("Ok: {}", val), Err(e) => println!("Err: {}", e), } }

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

Ok: 100

Пример

А теперь попробуем преобразовать число 300 типа i32 в тип u8. Число 300 не помещается в диапазон типа u8 (от 0 до 255), поэтому преобразование вернёт ошибку:

fn main() { let num: i32 = 300; let res: Result<u8, _> = num.try_into(); match res { Ok(val) => println!("Ok: {}", val), Err(e) => println!("Err: {}", e), } }

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

Err: out of range integral type conversion attempted

Пример

Давайте преобразуем строку "12345" в число типа i32 с помощью метода try_into:

use std::convert::TryInto; fn main() { let s = "12345"; let res: Result<i32, _> = s.try_into(); match res { Ok(val) => println!("Ok: {}", val), Err(e) => println!("Err: {}", e), } }

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

Ok: 12345

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

  • метод into,
    который выполняет безошибочное преобразование типа
  • типаж TryFrom,
    который лежит в основе метода try_into
  • метод parse,
    который преобразует строку в число
  • метод to_string,
    который преобразует значение в строку
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить