Оператор as
Оператор as выполняет явное преобразование
значения из одного типа в другой. Он применяется
к примитивным типам (числа, символы, булевы значения)
и указателям. Левый операнд - это выражение,
которое нужно преобразовать, а правый - целевой тип.
В отличие от трейтов From и Into,
оператор as не может завершиться ошибкой
и не вызывает паники. Если значение не помещается
в целевой тип, оно усекается или заменяется
специальным значением.
Синтаксис
value as Type
Пример
Давайте преобразуем целое число i32
в число с плавающей точкой f64:
fn main()
{
let num = 5;
let res = num as f64;
println!("{}", res);
}
Результат выполнения кода:
5.0
Пример
Давайте преобразуем число с плавающей точкой
f64 в целое число i32.
Дробная часть при этом отбрасывается:
fn main()
{
let num = 3.99;
let res = num as i32;
println!("{}", res);
}
Результат выполнения кода:
3
Пример
Давайте преобразуем число u8
в символ char по коду ASCII:
fn main()
{
let num = 65;
let res = num as char;
println!("{}", res);
}
Результат выполнения кода:
"A"
Пример
Давайте преобразуем большое число i32
в маленький тип u8. При переполнении
значение усекается:
fn main()
{
let num = 300;
let res = num as u8;
println!("{}", res);
}
Результат выполнения кода:
44
Пример
Давайте преобразуем булево значение bool
в целое число i32:
fn main()
{
let flag = true;
let res = flag as i32;
println!("{}", res);
}
Результат выполнения кода:
1