if let
불일치하면 건너뛴다. 한 패턴의 성공 경로만 필요할 때 쓴다.
패턴의 반박 가능성은 값의 문제가 아니라, 불일치 경로를 해당 문법이 처리할 수 있는지의 문제다.
Some(x)가 모든 값과 일치하는가?if let불일치하면 건너뛴다. 한 패턴의 성공 경로만 필요할 때 쓴다.
let ... else실패 시 빠져나간다. else는 return·break·panic처럼 발산해야 한다.
match모든 경우를 나눈다. 각 arm이 아니라 arm 전체가 빠짐없이 값을 덮어야 한다.
while let일치하는 동안 반복한다. 첫 불일치가 반복 종료 조건이 된다.
E0005 refutable pattern일반 let·함수 매개변수·for는 항상 일치해야 한다.if let x = 5처럼 분기가 늘 성공하면 일반 let이 더 정확하다.E0004 non-exhaustivematch에서 빠진 값은 arm을 추가해 전체 포괄성을 회복한다.핵심: 실패할 수 없는 위치에는 irrefutable 패턴을, 실패 경로가 있는 위치에는 refutable 패턴을 배치한다.