iOS/Swift

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

밤새는 탐험가89 2024. 1. 4. 23:48

튜플 (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 입니다.")