패턴과 매칭
패턴은 러스트에서 타입의 구조에 맞춰 값을 검사하는 특별한 문법입니다. 단순한 타입과
복잡한 타입 모두에 사용할 수 있습니다. 패턴을 match 식과 다른 구문들에 함께 사용하면,
프로그램의 제어 흐름을 훨씬 더 정교하게 다룰 수 있습니다. 패턴은 대체로 다음 요소들의
조합으로 이루어집니다.
- 리터럴
- 구조분해된 배열, enum, 구조체, 튜플
- 변수
- 와일드카드
- 자리표시자
패턴의 예로는 x, (a, 3), Some(Color::Red) 등이 있습니다. 패턴이 유효한
문맥 안에서는, 이런 구성 요소들이 데이터의 “모양”을 설명합니다. 프로그램은 값을
패턴과 비교해, 어떤 코드 조각을 계속 실행해도 되는 올바른 형태인지 판단합니다.
패턴을 사용하려면 어떤 값과 비교합니다. 패턴이 값과 맞으면, 그 값의 일부를 코드에서
사용할 수 있습니다. 6장에서 동전 분류 예제와 함께 보았던 match 식을 떠올려 보세요.
값이 패턴의 모양과 맞으면, 그 안에서 이름 붙인 부분을 꺼내 사용할 수 있습니다. 맞지
않으면, 그 패턴에 연결된 코드는 실행되지 않습니다.
이 장은 패턴과 관련된 모든 것에 대한 참고서 역할을 합니다. 패턴을 사용할 수 있는 유효한 위치, 반박 가능한 패턴과 반박 불가능한 패턴의 차이, 그리고 여러분이 만나게 될 다양한 패턴 문법을 다룹니다. 이 장을 마치면, 많은 개념을 더 명확하게 표현하기 위해 패턴을 어떻게 사용하는지 알게 될 것입니다.