Irrefutable · 항상 성공
x, (a, b)처럼 해당 타입의 모든 값과 맞는다. 실패 경로가 없는 let·함수 인수·for에 필요하다.
패턴은 값을 분해해 이름을 묶는 문법이고, context는 일부 값에서 매칭 실패가 가능한 refutable pattern을 허용할지 정한다.
x, (a, b)처럼 해당 타입의 모든 값과 맞는다. 실패 경로가 없는 let·함수 인수·for에 필요하다.
Some(x), literal, range처럼 틀릴 수 있다. match·if let·while let·let else가 실패를 처리한다.
match각 arm은 실패 가능, 전체는 exhaustiveif let한 경우 실행, 실패는 else 또는 무시while let성공 동안 반복, 실패하면 종료let else실패 block은 return·break처럼 divergelet / 인수모든 입력과 맞아야 바인딩 가능for모든 Iterator::Item과 맞으며 즉시 분해값의 타입가능한 variant·shape
→실패 가능성모든 값과 맞는가?
→제어 흐름arm·else·종료·compile error
E0005를 만나면 pattern을 irrefutable하게 바꾸거나, 실패 경로를 표현하는 match·if let·let else로 context를 바꾼다.