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);
}
컴파일러가 금지하는 초기화 되지 않는 변수의 사용은, 알 수 없는 행위로 이어지게 한다.