Преобразование в i64
Преобразование в i64 - это приведение значения
к 64-битному целому числу со знаком. В Rust такое
преобразование выполняется с помощью оператора
as, методов into, try_into
или from в зависимости от исходного типа.
Оператор as выполняет приведение между
примитивными числовыми типами, метод into
работает через типаж Into, а метод
try_into возвращает Result, если
преобразование может завершиться ошибкой. Параметром
метода try_into выступает целевой тип, который
выводится из контекста.
Синтаксис
let res = value as i64;
let res: i64 = value.into();
let res: Result<i64, _> = value.try_into();
Пример
Давайте преобразуем число типа i32 в i64
с помощью оператора as:
fn main()
{
let num: i32 = 12345;
let res = num as i64;
println!("{}", res);
}
Результат выполнения кода:
12345
Пример
Давайте преобразуем число типа u8 в i64
с помощью метода into:
fn main()
{
let num: u8 = 200;
let res: i64 = num.into();
println!("{}", res);
}
Результат выполнения кода:
200
Пример
Давайте преобразуем число типа u64 в i64
с помощью метода try_into, так как число может
не поместиться в целевой тип:
fn main()
{
let num: u64 = 12345;
let res: Result<i64, _> = num.try_into();
println!("{:?}", res);
}
Результат выполнения кода:
Ok(12345)
Пример
Давайте попробуем преобразовать слишком большое число
типа u64 в i64 и получим ошибку:
fn main()
{
let num: u64 = u64::MAX;
let res: Result<i64, _> = num.try_into();
println!("{:?}", res);
}
Результат выполнения кода:
Err(TryFromIntError(()))