Skip to content

가능합니다. 다음 문장을 보면

let x;
if true {
    x = 1;
} else {
    x = 2;
}

은 cpp의 입장에서 볼 땐 불가능하지만, 러스트의 입장에서는 가능합니다. 컴파일러가 잔머리를 굴려서 x에 오직 한 번만 할당이 되는지 파악했고, 동시에 가능한 할당구문이 동일한 타입인지도 파악했기 때문입니다.

하지만,#

아래의 방식이 좀 더 구체적이고 직관적이죠.

let x = if true { 1 } else { 2 };

https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init