선언 우선
변수 바인딩을 먼저 선언하고 나중에 초기화하는 것이 가능하지만, 모든 변수 바인딩은 사용되기 전에 초기화되어야 합니다. 컴파일러는 정의되지 않은 동작을 초래할 수 있는 초기화되지 않은 변수 바인딩의 사용을 금지합니다.
변수 바인딩을 선언하고 나중에 함수 내에서 초기화하는 것은 일반적이지 않습니다. 선언과 초기화가 분리되어 있으면 독자가 초기화 지점을 찾기 더 어렵기 때문입니다. 변수가 사용될 위치 근처에서 선언과 초기화를 함께 하는 것이 일반적입니다.
fn main() {
// 변수 바인딩 선언
let a_binding;
{
let x = 2;
// 바인딩 초기화
a_binding = x * x;
}
println!("바인딩 a: {}", a_binding);
let another_binding;
// 에러! 초기화되지 않은 바인딩 사용
println!("또 다른 바인딩: {}", another_binding);
// FIXME ^ 이 줄을 주석 처리하세요
another_binding = 1;
println!("또 다른 바인딩: {}", another_binding);
}