• 类型推导

    类型推导

    类型推导引擎是相当智能的。它不仅仅在初始化期间分析右值的类型,还会通过分析变量在后面是
    怎么使用的来推导该变量的类型。这里给出一个类型推导的高级例子:

    1. fn main() {
    2. // 借助类型标注,编译器知道 `elem` 具有 u8 类型。
    3. let elem = 5u8;
    4. // 创建一个空 vector(可增长数组)。
    5. let mut vec = Vec::new();
    6. // 此时编译器并未知道 `vec` 的确切类型,它只知道 `vec` 是一个含有某种类型
    7. // 的 vector(`Vec<_>`)。
    8. // 将 `elem` 插入 vector。
    9. vec.push(elem);
    10. // Aha!现在编译器就知道了 `vec` 是一个含有 `u8` 类型的 vector(`Vec<u8>`)
    11. // 试一试 ^ 尝试将 `vec.push(elem)` 那行注释掉
    12. println!("{:?}", vec);
    13. }

    无需变量的类型标注,编译器和程序员都很开心(the compiler is happy and so is the
    programmer)!