let에서 반박 가능한 패턴의 사용 시도하기
예상할 수 있듯 이 코드는 컴파일되지 않습니다. let 바인딩은 항상 매칭되는 패턴을 요구하므로, some_option_value가 None이면 Some(x) 패턴이 값을 받을 수 없습니다.
패턴 매칭 위치마다 실패 가능성을 허용하는 정도가 다릅니다. let은 항상 맞는 패턴을 요구하고, if let과 while let은 실패할 수 있는 패턴을 분기 조건으로 다룹니다.
let에서 반박 가능한 패턴 사용과 let 사용 기준을 중심으로 패턴 매칭 실패 가능성을 읽습니다.
일례로 let x = 5; 구문에서 x는 무엇이든 매칭되므로 매칭에 실패할 수 없습니다.
예상할 수 있듯 이 코드는 컴파일되지 않습니다. let 바인딩은 항상 매칭되는 패턴을 요구하므로, some_option_value가 None이면 Some(x) 패턴이 값을 받을 수 없습니다.
패턴에는 반박 가능한 패턴과 반박 불가능한 패턴의 두 가지 형태가 있습니다. 넘겨진 모든 가능한 값에 대해 매칭되는 패턴을 반박 불가능한(irrefutable) 패턴이라고 부릅니다.
if let과 while let 표현식은 반박 가능한 패턴과 반박 불가능한 패턴을 모두 허용하지만, 반박 불가능한 패턴은 조건 분기의 의미가 사라지기 때문에 컴파일러가 경고합니다.