Преобразование в usize
Преобразование в usize - это приведение значения
к беззнаковому целочисленному типу, размер которого
зависит от архитектуры (32 или 64 бита). Такой тип
обычно используется для индексации коллекций, работы
с длинами срезов и адресами в памяти. Преобразование
может выполняться как неявно через оператор as,
так и явно с помощью методов, таких как try_into
или parse. Параметром в каждом случае выступает
исходное значение, которое нужно преобразовать.
Синтаксис
// Приведение через as
значение as usize
// Преобразование через try_into
let res: usize = значение.try_into().unwrap();
// Преобразование строки через parse
let res: usize = "12345".parse().unwrap();
Пример
Давайте преобразуем целое число i32 в usize
с помощью оператора as:
fn main()
{
let num: i32 = 42;
let res: usize = num as usize;
println!("{}", res);
}
Результат выполнения кода:
42
Пример
Давайте преобразуем строку "12345" в usize
с помощью метода parse:
fn main()
{
let res: usize = "12345".parse().unwrap();
println!("{}", res);
}
Результат выполнения кода:
12345
Пример
Давайте преобразуем вектор в его длину типа usize
с помощью метода len:
fn main()
{
let vec = vec![1, 2, 3, 4, 5];
let res: usize = vec.len();
println!("{}", res);
}
Результат выполнения кода:
5
Пример
Давайте попробуем преобразовать отрицательное число
i32 в usize через try_into и
обработаем ошибку:
fn main()
{
let num: i32 = -1;
let res: Result<usize, _> = num.try_into();
match res
{
Ok(value) => println!("{}", value),
Err(_) => println!("Ошибка преобразования"),
}
}
Результат выполнения кода:
"Ошибка преобразования"