이 예와 달리 실제로는 모든 요소에 이름을 붙이거나 이름을 전혀 붙이지 않는 것이 좀 더 일반적이다. 예를 들어 튜플 타입을 (int, int) 혹은 (int x, int y, int z)처럼 선언하거나 튜플 리터럴을 (x: 1, y: 2) 혹은 (1, 2, 3)처럼 사용하는 것이 보통이다. 그렇다고 해서 이름을 붙여야 하는 요소를 따로 추려서 튜플을 구성하지는 않는다. 이름을 붙일 때 반드시 알아 두어야 할 두 가지 규칙이 있다.
• 이름은 튜플 타입과 튜플 리터럴 내에서 고유해야 한다. 튜플 리터럴을 (x: 1, x: 2)처럼 사용할 수 없으며 이치에도 맞지 않는다.
• ItemN이라는 이름으로 요소를 참조할 수 있으며, 이때 N은 요소의 위치를 나타내는 정숫값이어야 하고 1부터 시작한다. 예를 들어 (Item1: 0, Item2: 0)은 가능하지만 (Item2: 0, Item1: 0)이라고는 쓸 수 없다. 이에 대해서는 다음 절에서 좀 더 설명할 것이다.
튜플 타입은 일반적인 타입이 사용되는 위치라면 어디든 사용할 수 있어서 변수 선언이나 메서드의 반환값을 지정할 때도 사용할 수 있다. 튜플 리터럴은 값을 나타내는 다른 표현식과 동일하게 사용할 수 있으며, 이를 이용하면 여러 요소를 단일 요소로 쉽게 묶을 수 있다.
튜플 리터럴 내의 개별 요소는 포인터를 제외한 모든 타입의 값이 될 수 있다. 이 장에서 예로 든 대부분의 예제는 편의를 위해 상수(주로 정수나 문자열)를 사용했지만, 튜플 리터럴 내의 개별 요소의 값을 지정할 때 변수를 사용할 수도 있다. 마찬가지로 튜플 타입 내 개별 요소의 타입은 포인터를 제외한다면 어떤 타입으로도 지정할 수 있어서 배열, 타입 매개변수, 심지어 다른 튜플을 지정할 수도 있다.
튜플 타입의 형태를 이해했다면, 앞서 살펴본 MinMax 메서드의 반환 타입을 (int min, int max)처럼 선언해야 함을 쉽게 알 수 있다.
• 튜플 타입은 두 개의 요소를 가진다.
• 첫 번째 요소는 int 타입이며, min이라는 이름을 가진다.
• 두 번째 요소는 int 타입이며, max라는 이름을 가진다.