类型机制
强制转换
在Rust中,可以使用 as
关键字执行显式类型转换。
fn main() {
let decimal = 65.79_f32;
// 显式转换
let integer = decimal as u8;
let character = integer as char;
println!("{} {} {}", decimal, integer, character);
// 65.79 65 A
}
Inference 推断
类型推断机制不仅依据变量初始化期间表达式结果值的类型,还依据其之后的使用方式来推断。
fn main() {
let a = 5u8;
let mut vec = Vec::new();
// 此时编译器不知道 `vec` 容纳的元素类型
vec.push(a);
// 现在编译器知道 `vec` 是 `Vec<u8>`
println!("{:?}", vec); // [5]
}
别名
type
关键字可用于为现有类型赋予新名称。
type NanoSecond = u64;
type Duration = i64;
fn main() {
let duration: NanoSecond = 58 as u64;
println!("{} nanoseconds", duration); // 58 nanoseconds
}
代码挑战
尝试修改编辑器中提供的代码以实现转换函数。
Loading...
> 此处输出代码运行结果