본문 바로가기

Swift

데이터 타입 고급 2편 (튜플)

튜플 (Tuple)

지정된 데이터의 묶음 이라고 표현

타입 이름이 따로 없고, 일정 타입의 나열만으로 튜플 타입 생성 가능 

튜플에 포함될 데이터의 개수는 제한이 없음

 

튜플 기본

var fruit: (String, Int, Double) = ("Apple", 1000, 120.21)

print("과일 이름 \(fruit.0), 과일 가격 \(fruit.1)원, 과일 무게 \(fruit.2)g 입니다.")
// 과일 이름 Apple, 과일 가격 1000원, 과일 무게 120.21g 입니다.


// 인덱스를 통한 값 할당 가능 
// 사고 가격이 오르고 무게가 줄었다면?
fruit.1 = 1500
fruit.2 = 100.8

print("과일 이름 \(fruit.0), 과일 가격 \(fruit.1)원, 과일 무게 \(fruit.2)g 입니다.")
// 과일 이름 Apple, 과일 가격 1000원, 과일 무게 120.21g 입니다.

 

 

 

 

튜플의 각 요소를 인덱스만으로 접근하면 

데이터가 무엇인지 알기 어려움

따라서 튜플은 각 요소마다 이름을 붙일 수 있음

 

튜플 요소 이름 지정

var fruit: (name: String, price: Int, weight: Double) = ("Apple", 1000, 120.21)

print("과일 이름 \(fruit.name), 과일 가격 \(fruit.price)원, 과일 무게 \(fruit.weight)g 입니다.")


fruit.price = 1500
fruit.weight = 100.8

print("과일 이름 \(fruit.0), 과일 가격 \(fruit.1)원, 과일 무게 \(fruit.2)g 입니다.")

 

 

 

 

만약에 내가 만든 튜플을 계속 사용하고 싶다면?

튜플에 타입 이름을 지어줄 수 있음

 

튜플 별칭 지정 

typealias FruitTuple = (name: String, price: Int, weight: Double)

var apple: FruitTuple = ("Apple", 1200, 120.55)
var banana: FruitTuple = ("Banana", 2500, 342.11)

print("과일 이름 \(apple.name), 과일 가격 \(apple.price)원, 과일 무게 \(apple.weight)g 입니다.")
print("과일 이름 \(banana.name), 과일 가격 \(banana.price)원, 과일 무게 \(banana.weight)g 입니다.")



apple.price = 2000
apple.weight = 103.22


print("과일 이름 \(apple.name), 과일 가격 \(apple.price)원, 과일 무게 \(apple.weight)g 입니다.")