11장에서 튜플을 이용하면 새로운 타입을 만들지 않고도 하나의 변수를 이용하여 마치 여러 개의 변수를 담는 가방처럼 사용할 수 있다는 것을 배웠다. 튜플을 이용하면 일련의 시퀀스로부터 최솟값을 가져와 출력하고 동일한 시퀀스로부터 다시 최댓값을 가져와 출력하는 식으로 작업하지 않고, 단번에 최솟값, 최댓값을 가져와서 출력할 수 있다.
대부분 이 정도로 충분할지 모르겠다. 하지만 다양한 용도로 튜플을 사용하다 보면 튜플을 여러 개의 변수로 나눠야 할 때도 있다. 이러한 작업을 분해(deconstruction)라고 한다. 여러 개의 값을 하나로 구성한 복합 구성으로는 튜플 외에 KeyValuePair 같은 타입도 있다. C# 7은 단일 구문을 이용하여 여러 변수를 선언하거나 초기화할 수 있는 간단한 문법을 제공한다.
분해는 순차적인 할당문을 반복해서 수행하는 것처럼 다소 무조건적으로 수행된다. 패턴 매칭(pattern matching)도 이와 유사하지만, 문맥을 고려하여 작업을 수행할 수 있다. 예를 들어 입력값이 특정 패턴과 일치할 때만 그다음 코드를 수행하는 식이다. C# 7에서는 매우 제한적으로 패턴 매칭을 사용할 수 있고, 패턴의 종류도 비교적 제한적이지만 향후 확대될 것이다. 이번 장은 11장에서 다루었던 튜플을 어떻게 분해하는지 알아보면서 시작하자.