变量先声明

可以先声明(declare)变量绑定,后面才将它们初始化(initialize)。但是这种做法很 少用,因为这样可能导致使用未初始化的变量。

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

5. {
6. let x = 2;

8. // 初始化一个绑定
9. a_binding = x * x;
10. }

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

14. let another_binding;

16. // 报错!使用了未初始化的绑定
17. println!("another binding: {}", another_binding);
18. // 改正 ^ 注释掉此行

20. another_binding = 1;

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

编译器禁止使用未经初始化的变量,因为这会产生未定义行为(undefined behavior)。