Rust

반박 가능성: 패턴이 매칭에 실패할지의 여부

패턴 매칭 위치마다 실패 가능성을 허용하는 정도가 다릅니다. let은 항상 맞는 패턴을 요구하고, if let과 while let은 실패할 수 있는 패턴을 분기 조건으로 다룹니다.

let에서 반박 가능한 패턴 사용과 let 사용 기준을 중심으로 패턴 매칭 실패 가능성을 읽습니다.

핵심 개념

let x = 5

일례로 let x = 5; 구문에서 x는 무엇이든 매칭되므로 매칭에 실패할 수 없습니다.

1

let에서 반박 가능한 패턴의 사용 시도하기

예상할 수 있듯 이 코드는 컴파일되지 않습니다. let 바인딩은 항상 매칭되는 패턴을 요구하므로, some_option_value가 None이면 Some(x) 패턴이 값을 받을 수 없습니다.

2

let 사용

패턴에는 반박 가능한 패턴과 반박 불가능한 패턴의 두 가지 형태가 있습니다. 넘겨진 모든 가능한 값에 대해 매칭되는 패턴을 반박 불가능한(irrefutable) 패턴이라고 부릅니다.

3

if 사용

if let과 while let 표현식은 반박 가능한 패턴과 반박 불가능한 패턴을 모두 허용하지만, 반박 불가능한 패턴은 조건 분기의 의미가 사라지기 때문에 컴파일러가 경고합니다.