값은 위에서 아래로 각 패턴과 비교되고, 처음 맞는 갈래가 실행됩니다.
MATCH CONTROL FLOW
match는 가능한 경우를 모두 닫아 분기 로직을 안전하게 만든다
`match`는 값을 패턴과 순서대로 비교하고, 맞는 갈래의 표현식을 실행합니다. 컴파일러는 빠진 경우가 없는지도 함께 검사합니다.
match coin {
Coin::Penny => 1,
Coin::Nickel => 5,
Coin::Dime => 10,
Coin::Quarter(state) => value(state),
}
각 갈래의 마지막 표현식이 전체 match 표현식의 결과값이 됩니다.
열거형 배리언트 내부 값을 꺼내 이름으로 묶고, 갈래 안에서 바로 사용할 수 있습니다.
처리하지 않은 배리언트가 있으면 컴파일 단계에서 알려주어 분기 누락을 줄입니다.
안전 기준
도메인 상태가 열거형으로 닫혀 있을수록 match는 “처리하지 않은
상태”를 컴파일러가 잡아주는 도구가 됩니다.
주의 기준
와일드카드 `_`를 너무 일찍 쓰면 새 배리언트가 추가되어도
컴파일러가 누락을 알려주지 못할 수 있습니다.