계발자 블로그
[Swift] Tuple(튜플) 본문
Tuple
튜플은 swift에서 여러 개의 값을 하나의 값으로 묶는 데 사용되는 데이터 구조입니다.
튜플은 서로 다른 타입의 값들을 포함할 수 있으며, 값을 순서대로 저장합니다.
튜플의 기본 사용법
var tuple: (String, Int, Bool) = ("Kim", 100, true)
var tuple2 = ("Kim", 100, 1.5)
var person = (name: "Kim", age: 28, job: "president")
위의 코드에서 tuple 변수는 타입을 명시 한 문자열, 정수, boolean형으로 이루어진 값입니다.
Tuple 역시 타입추론이 가능하기 때문에 타입을 직접 명시하지 않아도 괜찮습니다.
또한 Tuple은 person 변수처럼 정의할 때 각 요소에 이름을 지정할 수 있습니다.
튜플 값에 접근하는 법
1. 인덱스를 사용하여 접근
person.0 // "Kim"
person.1 // 28
2. 지정한 이름으로 접근
person.name // "Kim"
person.job // "president"
다양한 튜플의 활용법
switch 문의 활용
let 해상도 = (3840.0, 2160.0)
func 해상도알려주는함수 (가로: Double, 세로: Double) -> String {
let 해상도 = (가로, 세로)
switch 해상도 {
case(3840...10000, _):
return "와이드모니터 같은데요?"
case (3840.0, 2160.0):
return "4k"
case (2560, 1440) :
return "QHD"
case (1920, 1080) :
return "FHD"
case let (x, y) where x == y:
return "정사각형 모니터...?"
case let (x, y) where x < y:
return "가로랑 세로를 잘못 입력하신거 같아요"
default:
return "이상한데요?"
}
}
print(해상도알려주는함수(가로: 2160, 세로: 5000))
배열 안의 튜플
튜플을 활용하면, 더 다양한 타입의 데이터 타입을 한 배열에 넣을 수 있습니다.
var catArr : [(name: String, age: Int)] = []
catArr.append((name : "까까", age : 7))
catArr.append((name : "루", age : 4))
print(catArr)
print(catArr[0].name) // 까까
for (index, element) in catArr.enumerated() {
print("\(index + 1)번째 고양이는 \(element.name)이고, 나이는 \(element.age)살 입니다.")
}
/*
1번째 고양이는 까까이고, 나이는 7입니다.
2번째 고양이는 루이고, 나이는 4입니다.
*/
간단한 유저 정보 등을 배열 속에 넣어서 관리할 때 유용하게 사용할 수 있을 것 같습니다.
튜플 안에 배열
let 우리고양이 = (name: "고양이", color: "Black", age: 7, likes: ["츄르", "냉장고", "캣폴"])
print(우리고양이.likes) // ["츄르", "냉장고", "캣폴"]
for 좋아하는거 in 우리고양이.likes {
print(좋아하는거)
}
이처럼 튜플 안에 배열을 넣어서 디테일한 정보를 담을 수 있습니다.
튜플 안에 함수
func getName () -> String {
return "김대성"
}
func getAge () -> Int {
return 99
}
let userInfo = (name : getName(), age : getAge())
print(userInfo.name, userInfo.age) // 김대성 99
func 주식계산기 (name: String, price: Double, amount: Double) -> (name: String, value: Double) {
return (name, price * amount)
}
let 삼성전자 = 주식계산기(name: "삼성전자", price: 67400, amount: 50)
let 현대자동차 = 주식계산기(name: "현대자동차", price: 186000, amount: 20)
let 네이버 = 주식계산기(name: "네이버", price: 286500, amount: 10)
let 내주식 = (삼성전자, 현대자동차, 네이버)
print("\(내주식.0.name)을 \(내주식.0.value)만큼 들고 있습니다.")
함수 값을 튜플에 담는 것 역시 가능합니다.
출처: https://velog.io/@ds-k/Swift-튜플Tuple의-활용
'Swift' 카테고리의 다른 글
[Swift] Class와 Struct (0) | 2024.05.24 |
---|---|
[Swift] Collection (0) | 2024.05.20 |