스위프트에서는 기본적으로 제공하는 여러 가지 데이터 타입이 있습니다. 그런데, 꼭 스위프트에서 제공해주는 데이터 타입만을 사용해야 할까요? 그렇지 않습니다. 스위프트에서는 사용자 정의 데이터 타입인 튜플을 설정할 수 있습니다.
그렇다면 완전히 새로운 데이터 타입을 생성할 수 있을까요? 그렇지는 않습니다. 우리는 기본적으로 스위프트에서 제공하는 데이터 타입을 조합해서 튜플을 생성할 수 있습니다.
데이터 타입의 조합은 다양하게 할 수 있는데요. 한 개 또는 두 개를 넘어 많은 개수를 조합하여 만들 수 있습니다. 아래의 예시를 보시면 어떻게 튜플을 생성하는지, 어떻게 이용해야 할지 감이 오실 것입니다.
1. 튜플의 생성 방법과 사용 예시
------------------------------------------------------------코드 시작------------------------------------------------------------
var dog: (String, Int, Double) = ("My dog", 4, 10.45)
// 세 가지의 기본 데이터 타입을 가진 튜플(dog)를 생성할 수 있습니다.
print("나의 강아지의 이름은 \(dog.0)이고, 나이는 \(dog.1), 몸무게는 \(dog.2) 입니다.")
// 튜플(dog)의 최초 값은 인덱스 0부터 시작합니다.
dog.1 = 5
dog.2 = 9.32
// 튜플의 인덱스에 직접 값을 넣거나, 수정할 수 있습니다.
print("나의 강아지의 이름은 \(dog.0)이고, 올해 나이는 \(dog.1), 몸무게는 \(dog.2) 입니다.")
------------------------------------------------------------코드 종료------------------------------------------------------------
그런데, 한 가지 불편한 점이 있습니다. dog로 지정한 튜플의 요소 개수가 3개가 아니라 20~30개가 된다면 우리는 그 모두를 기억할 수 있을까요? 그렇지 않습니다. 그럼 제대로 사용하기가 어려울 것입니다. 어떻게 해야 할까요?
바로 튜플의 요소에 이름을 붙여주는 것이지요.
------------------------------------------------------------코드 시작------------------------------------------------------------
var dog: (name: String, age: Int, weight: Double) = ("My dog", 4, 10.45)
// 튜플 생성 시 각각의 요소에 이름을 넣어줄 수 있습니다.
print("나의 강아지의 이름은 \(dog.name)이고, 나이는 \(dog.age), 몸무게는 \(dog.weight) 입니다.")
// 튜플(dog) 각각의 요소를 출력할 때 지정했던 이름을 가지고 출력할 수 있습니다.
dog.age = 5
dog.weight = 9.32
// 튜플의 요소 이름을 이용해 직접 값을 넣거나, 수정할 수 있습니다.
print("나의 강아지의 이름은 \(dog.name)이고, 올해 나이는 \(dog.age), 몸무게는 \(dog.weight) 입니다.")
------------------------------------------------------------코드 종료------------------------------------------------------------
그런데 또 불편한 것이 있습니다. 튜플을 생성할 때 매번 긴 문장을 쓰려니 번거로움이 있습니다. 좀더 편리하게 사용할 수 있는 방법이 있습니다. 그것은 튜플의 별칭을 지정해주는 것인데요.
2. 튜플의 별칭 사용 방법
------------------------------------------------------------코드 시작------------------------------------------------------------
typealias animal = (name: String, age: Int, weight: Double)
// typealias를 이용하여 생성하고 싶은 튜플의 요소의 묶음을 animal로 지정합니다.
var Mydog: animal = ("my dog", 4, 10.45)
var Mycat: animal = ("my cat", 2, 11.22)
// 기본 데이터 타입을 생성하는 방식과 유사하게 튜플을 생성할 수 있습니다.
print("나의 강아지의 이름은 \(Mydog.name)이고, 나이는 \(Mydog.age), 몸무게는 \(Mydog.weight) 입니다.")
print("나의 고양이의 이름은 \(Mycat.name)이고, 올해 나이는 \(Mycat.age), 몸무게는 \(Mycat.weight) 입니다.")
// 튜플(animal) 각각의 요소를 작성할 때 지정했던 이름을 가지고 출력할 수 있습니다.
------------------------------------------------------------코드 종료------------------------------------------------------------
'스위프트(Swift)' 카테고리의 다른 글
스위프트(Swift) - 컬렉션 타입 딕셔너리(Dictionary) (0) | 2020.11.07 |
---|---|
스위프트(Swift) - 열거형(enum) (0) | 2020.11.04 |
스위프트(Swift) - 컬렉션 타입 배열(Array) 사용 방법 (0) | 2020.10.27 |
스위프트(Swift) - 데이터 타입(자료형) (0) | 2020.10.26 |
스위프트(Swift) - 변수와 상수 (0) | 2020.10.26 |