MATCH CHECK

match는 모든 경우를 빠짐없이 다루는 표이다

각 갈래는 패턴, 바인딩, 반환값을 함께 갖기 때문에 누락된 경우와 타입 불일치를 컴파일러가 잡아냅니다.

Some(x) None _ => ()
패턴

값 모양으로 분기

리터럴, 열거형 배리언트, 바인딩 이름을 이용해 값의 형태를 나눕니다.

철저함

모든 갈래가 필요

Option<T>라면 Some과 None을 모두 처리해야 안전한 코드가 됩니다.

반환

같은 타입으로 합류

match가 표현식이면 모든 arm이 같은 타입의 값을 만들어야 합니다.

01 · 구체 먼저 좁은 패턴을 둡니다.
02 · 바인딩 필요한 값을 이름으로 꺼냅니다.
03 · 나머지 _로 의도를 표시합니다.
04 · 합류 반환 타입을 맞춥니다.
주의점

와일드카드가 너무 이르면 뒤의 구체 패턴이 도달하지 못하므로 순서를 좁은 조건에서 넓은 조건으로 둡니다.