RUST · CONTROL FLOW

값이 되는 if 표현식

Rust의 if는 문장이 아니라 표현식이 될 수 있습니다. 그래서 분기 결과를 변수에 대입할 수 있지만, 모든 갈래의 타입이 같아야 합니다.

if 표현식 구조

value
conditionbool 조건을 평가합니다.
then block참일 때 실행되고 마지막 표현식이 후보 값입니다.
else block거짓일 때 실행되고 같은 타입의 값을 내야 합니다.
merge type두 갈래의 결과 타입이 하나로 맞아야 합니다.
let binding선택된 값이 변수에 바인딩됩니다.
조건thenelse타입 일치값 대입

주의점

type
괄호 없음조건식 주변 괄호는 필요하지 않습니다.
bool만 허용숫자 0/1을 조건처럼 사용할 수 없습니다.
세미콜론블록 마지막에 세미콜론을 붙이면 값이 아니라 ()가 됩니다.
타입 일치한쪽은 i32, 한쪽은 &str이면 대입할 수 없습니다.