先声明

可以先声明变量绑定,然后再初始化。但这种形式很少使用,因为它可能导致使用未初始化的变量。

fn main() {
    // 声明一个变量绑定
    let a_binding;

    {
        let x = 2;

        // 初始化绑定
        a_binding = x * x;
    }

    println!("绑定:{}", a_binding);

    let another_binding;

    // 错误!使用未初始化的绑定
    println!("另一个绑定:{}", another_binding);
    // 修复:^ 注释掉此行

    another_binding = 1;

    println!("另一个绑定:{}", another_binding);
}

编译器禁止使用未初始化的变量,因为这会导致未定义行为。