类型推断 - Rust By Example
Description: Rust by Example (RBE) is a collection of runnable examples that illustrate various Rust concepts and standard libraries.

## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# 类型推断

类型推断引擎相当智能。它不仅在初始化时分析值表达式的类型，还会根据变量后续的使用方式来推断其类型。下面是一个类型推断的高级示例：

    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);
    }

无需为变量添加类型注解，编译器和程序员都很满意！