if expression

if는 값을 만들 수 있지만 모든 갈래 타입이 같아야 한다

Rust의 if는 표현식으로 변수에 대입할 수 있으며, 컴파일러는 각 분기 결과 타입을 하나로 맞춘다.

01 conditionbool 검사

분기 선택

02 then branch값 반환

세미콜론 없음

03 else branch같은 타입 값

누락 시 ()

04 bindinglet x = if ...

최종 값 저장

구분의미판단
타입 일치i32 / i32대입 가능
타입 불일치i32 / &str컴파일 오류
else 없음결과는 ()값 대입 의도와 불일치

핵심 if 표현식은 제어 흐름이면서 동시에 하나의 값을 만들어야 한다는 점이다.