变量先声明

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

  1. fn main() {
  2. // 声明一个变量绑定
  3. let a_binding;
  4. {
  5. let x = 2;
  6. // 初始化一个绑定
  7. a_binding = x * x;
  8. }
  9. println!("a binding: {}", a_binding);
  10. let another_binding;
  11. // 报错!使用了未初始化的绑定
  12. println!("another binding: {}", another_binding);
  13. // 改正 ^ 注释掉此行
  14. another_binding = 1;
  15. println!("another binding: {}", another_binding);
  16. }

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