pattern positions

패턴은 값을 검사하거나 분해하는 자리마다 등장한다

`match`만의 기능이 아니라 조건, 반복, 바인딩, 함수 경계에서 모두 값을 구조에 맞춰 꺼낸다.

branch

`match` 갈래

모든 경우를 빠짐없이 다룬다.

Some(i) => i + 1
condition

`if let`

한 가지 성공 형태만 짧게 처리한다.

if let Ok(age) = age
loop

`while let`

패턴이 맞는 동안 반복한다.

while let Some(top)
binding

`for`, `let`, 함수 매개변수

튜플이나 구조체를 받는 즉시 필요한 부분 이름으로 분해한다.

for (index, value) in iter
fn print_coordinates(&(x, y): &(i32, i32))
shape

구성 요소

리터럴, 변수, 와일드카드, 튜플, 열거형, 구조체가 조합된다.