튜플(Tuple)은 사용자 임의로 여러 종류의 값을 하나의 개체에 일시적으로 묶어 만든 타입입니다.
튜플에 저장되는 항목들은 어떠한 타입도 될 수 있습니다.
즉, 저장된 값들이 모두 동일한 타입이어야 한다는 제약이 없습니다.
튜플에 저장된 값을 호출하고 싶을 때는 인덱스 번호를 사용하면 됩니다.
✅ 튜플의 기본 사용
var myTuple = (20, 70.5, "홍길동") //인덱스를 사용하여 값을 추출할 수 있다. print(myTuple.0) //20 print(myTuple.2) //홍길동
✅ 튜플 요소 이름 지정
튜플을 정의할 때 각 요소에 이름을 지정할 수 있습니다.
var myTuple = (myAge: 20, myWeight: 70.5, myName: "홍길동") print(myTuple.myAge) //20 print(myTuple.myName) //홍길동
튜플을 정의한 뒤 각 요소에 이름을 할당할 수 있습니다.
var myTuple = (20, 70.5, "홍길동") var (myAge, myWeight, myName) = myTuple print(myAge) //20 print(myName) //홍길동
✅ 무시하고 싶은 값에 밑줄( _ )을 사용하면 그 값은 무시
var myTuple = (20, 70.5, "홍길동") var (myAge, _, myName) = myTuple print(myAge) //20 print(myName) //홍길동
Swift에서 함수(메서드)가 반환할 수 있는 return 값은 1개의 데이터 타입뿐입니다.
그 때문에 여러 개의 데이터 타입을 반환하기 위해서 여러 값을 하나로 묶어 하나의 데이터 타입으로 사용할 수 있는 튜플(Tuple)을 사용합니다. (함수뿐만 아니라 제어문, 조건문 등에서도 많이 사용된다.)
✅ 함수의 return type을 튜플(Tuple) 타입으로 사용
func phone(brand: String) -> (String, Int?){ //parameter type을 String으로 받았지만, return type은 튜플을 사용하여 (String, Optional<Int>)type으로 반환 switch brand{ case "apple": return ("아이폰14 Pro", 1550000) case "samsung": return ("Z플립4", 1474000) default: return ("관심 없는 스마트폰 입니다...", nil) } } print(phone(brand: "apple")) print(phone(brand: "samsung")) print(phone(brand: "lg")) /* 출력 결과 ("아이폰14 Pro", Optional(1550000)) ("Z플립4", Optional(1474000)) ("관심 없는 스마트폰 입니다...", nil) */