可以先声明变量绑定,以后(然后)在初始化。 然而,这种形式很少使用,因为它可能导致使用未初始化的变量。
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); }
编译器禁止使用未初始化变量,因为这将导致不确定的行为。