4.3 Declare first
변수 바인딩을 먼저 하고, 그들의 초기화를 나중에 하는 식의 선언도 가능하다. 하지만 이런 형식은 초기화되지 않은 변수의 사용으로 이어질 수 있기에 거의 사용되지 않는다.
fn main() { // 변수 바인딩 선언 let a_binding; { let x = 2; // 초기화 바인딩 a_binding = x * x; } println!("a binding: {}", a_binding); let another_binding; // 에러! 초기화 되지 않은 바인딩을 사용. println!("another binding: {}", another_binding); // FIXME ^ 이 줄을 주석처리 하세요. another_binding = 1; println!("another binding: {}", another_binding); }
컴파일러가 금지하는 초기화 되지 않는 변수의 사용은, 알 수 없는 행위로 이어지게 한다.