튜플 Tuple 은 어떠한 값들의 묶음 입니다. 배열과 비슷하다고 볼 수 있는데, 배열과는 다르게 튜플은 길이가 고정되어 있습니다. 접근할 때도 [ ] 대신 . 을 사용합니다.
var userInfo = ("dldmswo1209", "eun jae")
print(userInfo.0) // dldmswo1209
print(userInfo.1) // eun jae
튜플의 파라미터에 이름을 붙일 수도 있습니다.
var userInfo = (id: "dldmswo1209", name: "eun jae")
print(userInfo.id) // dldmswo1209
print(userInfo.name) // eun jae
이렇게 보면, 이전에 봤던 구조체 struct 와 비슷해보이죠? 실제로 간단한 자료형을 만들 때 구조체대신 튜플을 사용한답니다.
튜플의 어노테이션을 이렇게 생겼어요.
var userInfo : (String, String)
var animalInfo: (String, Int)
튜플을 응용하면 한번에 여러 변수에 값을 지정할 수 있습니다.
let (name, age) = ("eun jae", 25)
print(name) // eun jae
print(age) // 25
튜플의 값을 여러 변수에 저장할 때, 무시하고 싶은 값이 있다면, _ 를 사용하면 됩니다.
아래의 예시에서는 temp 라는 문자열을 무시합니다.
let (_, name, age) = ("temp", "eun jae", 25)
print(name) // eun jae
print(age) // 25
튜플을 반환하는 함수를 만들 수 있습니다.
func coffeeMachine(order: String) -> (String, Int) {
switch order {
case "아메리카노":
return (order, 3500)
case "카페라떼":
return (order, 4500)
case "초코라떼":
return (order, 5000)
case "콜드브루":
return (order, 5500)
default:
return (order, 0)
}
}
print(coffeeMachine(order: "아메리카노")) //("아메리카노", 3500)