先声明

可以先声明变量绑定,然后再初始化它们,但是所有的变量绑定都必须在使用前初始化:编译器禁止使用未初始化的变量绑定,因为这会导致未定义的行为。

在函数中先声明变量绑定然后再初始化它并不常见。当初始化与声明分离时,读者更难找到初始化。常见的做法是在变量将被使用的地方附近声明并初始化变量绑定。

fn main() {
    // Declare a variable binding
    let a_binding;

    {
        let x = 2;

        // Initialize the binding
        a_binding = x * x;
    }

    println!("a binding: {}", a_binding);

    let another_binding;

    // Error! Use of uninitialized binding
    println!("another binding: {}", another_binding);
    // FIXME ^ Comment out this line

    another_binding = 1;

    println!("another binding: {}", another_binding);
}