Преобразование в u8
Тип u8 представляет собой беззнаковое целое число,
занимающее 8 бит и принимающее значения от 0 до 255.
Преобразование в u8 выполняется с помощью трейта
TryFrom, метода parse или оператора as.
При использовании TryFrom преобразование возвращает
Result, так как значение может не поместиться
в диапазон типа u8.
Синтаксис
u8::try_from(value)
value.parse::<u8>()
value as u8
Пример
Давайте преобразуем число 42 типа i32
в тип u8 с помощью метода try_from:
fn main()
{
let num: i32 = 42;
let res = u8::try_from(num);
println!("{:?}", res);
}
Результат выполнения кода:
Ok(42)
Пример
Давайте попробуем преобразовать число 300 типа i32
в тип u8. Так как 300 больше максимального
значения 255, преобразование вернёт ошибку:
fn main()
{
let num: i32 = 300;
let res = u8::try_from(num);
println!("{:?}", res);
}
Результат выполнения кода:
Err(TryFromIntError(()))
Пример
Давайте преобразуем строку "12345" в тип u8
с помощью метода parse:
fn main()
{
let res = "12345".parse::<u8>();
println!("{:?}", res);
}
Результат выполнения кода:
Err(ParseIntError { kind: PosOverflow })
Пример
Давайте преобразуем число 100 типа i32
в тип u8 с помощью оператора as:
fn main()
{
let num: i32 = 100;
let res = num as u8;
println!("{}", res);
}
Результат выполнения кода:
100