简介
在本实验中,类型推断引擎因其能够根据变量的使用情况和值赋值来推断变量类型的能力而受到关注,这在一个使用 Rust 编程语言的高级示例中得到了展示。
注意:如果实验未指定文件名,你可以使用任何你想要的文件名。例如,你可以使用
main.rs,并通过rustc main.rs &&./main进行编译和运行。
在本实验中,类型推断引擎因其能够根据变量的使用情况和值赋值来推断变量类型的能力而受到关注,这在一个使用 Rust 编程语言的高级示例中得到了展示。
注意:如果实验未指定文件名,你可以使用任何你想要的文件名。例如,你可以使用
main.rs,并通过rustc main.rs &&./main进行编译和运行。
类型推断引擎相当智能。它在初始化期间所做的不仅仅是查看值表达式的类型。它还会查看变量在后续的使用方式,以推断其类型。以下是一个类型推断的高级示例:
fn main() {
// 由于有注释,编译器知道 `elem` 的类型为 u8。
let elem = 5u8;
// 创建一个空向量(一种可增长的数组)。
let mut vec = Vec::new();
// 此时编译器不知道 `vec` 的具体类型,它
// 只知道它是某种类型的向量 (`Vec<_>`)。
// 将 `elem` 插入向量中。
vec.push(elem);
// 啊哈!现在编译器知道 `vec` 是一个 `u8` 类型的向量 (`Vec<u8>`)
// TODO ^ 尝试注释掉 `vec.push(elem)` 这一行
println!("{:?}", vec);
}
无需对变量进行类型注释,编译器很满意,程序员也很满意!
恭喜你!你已经完成了“推断”实验。你可以在 LabEx 中练习更多实验来提升你的技能。