MATCH CHECK
match는 모든 경우를 빠짐없이 다루는 표이다
각 갈래는 패턴, 바인딩, 반환값을 함께 갖기 때문에 누락된 경우와 타입 불일치를 컴파일러가 잡아냅니다.
Some(x)
None
_ => ()
값 모양으로 분기
리터럴, 열거형 배리언트, 바인딩 이름을 이용해 값의 형태를 나눕니다.
모든 갈래가 필요
Option<T>라면 Some과 None을 모두 처리해야 안전한 코드가 됩니다.
같은 타입으로 합류
match가 표현식이면 모든 arm이 같은 타입의 값을 만들어야 합니다.
01 · 구체
먼저 좁은 패턴을 둡니다.
02 · 바인딩
필요한 값을 이름으로 꺼냅니다.
03 · 나머지
_로 의도를 표시합니다.
04 · 합류
반환 타입을 맞춥니다.
와일드카드가 너무 이르면 뒤의 구체 패턴이 도달하지 못하므로 순서를 좁은 조건에서 넓은 조건으로 둡니다.