Преобразование в u32
Преобразование в u32 - это приведение значения к типу
беззнакового 32-битного целого числа. Тип u32
принимает значения от 0 до 4294967295.
В Rust такое преобразование выполняется с помощью оператора
as для примитивных числовых типов, метода
parse для строк, а также типажей
From, Into, TryFrom и
TryInto. Параметром в каждом случае выступает
исходное значение, которое нужно преобразовать.
Синтаксис
let res = value as u32;
let res: u32 = value.parse().unwrap();
let res = u32::from(value);
let res: u32 = value.into();
let res = u32::try_from(value).unwrap();
let res: u32 = value.try_into().unwrap();
Пример
Давайте преобразуем число типа i32 в u32
с помощью оператора as:
fn main()
{
let num: i32 = 12345;
let res = num as u32;
println!("{}", res);
}
Результат выполнения кода:
12345
Пример
Давайте преобразуем строку "12345" в число типа
u32 с помощью метода parse:
fn main()
{
let res: u32 = "12345".parse().unwrap();
println!("{}", res);
}
Результат выполнения кода:
12345
Пример
Давайте преобразуем число типа u8 в u32
с помощью метода from:
fn main()
{
let num: u8 = 255;
let res = u32::from(num);
println!("{}", res);
}
Результат выполнения кода:
255
Пример
Давайте преобразуем число типа i32 в u32
с помощью метода try_from, который проверяет,
помещается ли значение в диапазон целевого типа:
fn main()
{
let num: i32 = 12345;
let res = u32::try_from(num).unwrap();
println!("{}", res);
}
Результат выполнения кода:
12345
Пример
Давайте преобразуем отрицательное число типа i32
в u32 с помощью метода try_from.
Такое преобразование вернёт ошибку:
fn main()
{
let num: i32 = -1;
let res = u32::try_from(num);
println!("{:?}", res);
}
Результат выполнения кода:
Err(TryFromIntError(()))