티스토리 뷰

Swift

[Swift] 튜플(Tuple)

희철 2022. 6. 10. 02:07

튜플이란?

타입의 이름이 따로 지정되어 있지 않은 타입. 즉, 지정된 데이터의 묶음이라고 할 수 있다.

 

튜플은 타입 이름이 따로 없기 때문에 일정 타입의 나열만으로 튜플 타입을 생성해줄 수 있다. 우리는 흔히 변수를 선언할 때, 타입을 명시해준다. 이를 타입 어노테이션이라고 한다. 

예를 들어보자. a라는 문자열 타입의 변수를 선언할 때, 아래와 같이 String이라는 타입을 같이 명시해준다.

var a: String = "heecheol"

하지만 타입 이름이 따로 없는 튜플의 경우는 어떻게 생성해주어야할까?

 

튜플은 프로그래머 마음대로 만드는 타입이라고 생각하면된다. 튜플에 포함될 데이터의 수 또한 자유롭게 정할 수 있다.

아래의 코드를 보자.

var heecheol: (String, Int, String) = ("Man", 100, "AAA")

위의 코드처럼 ()안에 원하는만큼 데이터를 넣어 선언하면된다. 하지만 이와 같이 선언한다면 다른 사람이 코드를 볼 때 각 요소가 어떤 의미인지 모를 가능성이 크다. 이를 방지하기 위해 튜플의 요소마다 이름을 붙여줄 수도 있다. 

 

var heecheol: (gender: String, age: Int, bloodType: String) = ("Man", 100, "AAA")

위와 같이 선언한다면 각 요소가 어떤 것을 의미하는지 쉽게 파악할 수 있다.

튜플의 값을 빼오는 것도 간단하다. 배열과 비슷하게 인덱스로 확인할 수 있다.

var heecheol: (gender: String, age: Int, bloodType: String) = ("Man", 100, "AAA")

print("성별: \(heecheol.0), 나이: \(heecheol.1), 혈액형: \(heecheol.2)")
// 성별: Man, 나이: 100, 혈액형: AAA이 출력된다.

print("성별: \(heecheol.gender), 나이: \(heecheol.age), 혈액형: \(heecheol.bloodType)")
// 붙여준 이름으로도 값을 불러올 수 있다.

 

튜플을 사용하다보면 같은 모양의 튜플을 반복해서 사용하고 싶을 수도 있다. 하지만 튜플에는 타입 이름에 해당하는 키워드가 따로 없어서 매번 튜플 타입을 모두 써줘야 할 수도 있다. 

이 불편함을 해결하기 위해서는 타입 별칭(typealias)를 사용하면된다.

 

타입 별칭이란?

데이터타입에 별칭을 부여하는 것을 의미한다. 데이터타입은 스위프트에서 기본으로 제공하는 데이터 타입일 수도 있고, 사용자가 임의로 만든 데이터 타입일 수도 있고, 이미 존재하는 데이터 타입일 수도 있다.

타입 별칭을 이용하여 자주 사용하는 튜플 타입을 조금 더 간단하고 깔끔하게 이용할 수 있을 것이다. 

// Hee라는 단어로 튜플 별칭을 지정.
typealias Hee = (gender: String, age: Int, bloodType: String)

var heecheol: Hee = ("Man", 100, "AAA")
var hhheee: Hee = ("Woman", 101, "B")

위처럼 타입 별칭을 이용해 튜플을 더욱 간단하게 사용할 수 있을 것이다.

 

'Swift' 카테고리의 다른 글

[Swift] 접근 제어  (0) 2022.08.28
[Swift] Optional(옵셔널)  (0) 2022.07.07
[Swift] 진수 변환(radix)  (0) 2022.06.06
[Swift] 순열과 조합(Permutation / Combination) 구현해보기  (0) 2022.05.10
[Swift] enumerated()  (0) 2022.04.26
댓글
최근에 올라온 글
Total
Today
Yesterday