튜플(Tuple)
- 2개이상의 연관된 데이터(값)를 저장하는 Compound(복합/혼합) 타입
let twoNumbers: (Int, Int) = (1, 2)
let threeNumbers = (1, 2, 5)
var threeValues = ("홍길동", 20, "서울")
연관된 값(튜플)의 각각의 데이터의 접근
threeValues.0
threeValues.1
threeValues.2
Named Tuple(이름이 매겨진 튜플)
typealias IOS = (language: String, version: String)
let iOS: IOS = ("Swift", "5")
let iOS2: IOS = ("Java", "6")
iOS.version
iOS.language
iOS2.language
iOS2.version
튜플과 switch문
let iOS = (language: "Swift", version: "5")
if iOS.0 == "Swift" && iOS.1 == "5" {
print("스위프트 버전 5입니다.")
}
if iOS == ("Swift", "5") {
print("스위프트 버전 5입니다.")
}
switch iOS {
case ("Swift", "5"):
print("스위프트 버전 5입니다.")
case ("Swift", "4"):
print("스위프트 버전 4입니다.")
default:
break
}
튜플의 바인딩(케이스 매칭의 느낌으로 기억)
var coordinate = (0, 5)
switch coordinate {
case (let distance, 0), (0, let distance):
print("X 또는 Y축 위에 위치하며, \(distance)만큼의 거리가 떨어져 있음")
default:
print("축 위에 있지 않음")
}
튜플의 where절 활용
coordinate = (5, 0)
switch coordinate {
**
case (let x, let y) where x == y:
print("(\(x), \(y))의 좌표는 y = x 1차함수의 그래프 위에 있다.")
case let (x, y) where x == -y:
print("(\(x), \(y))의 좌표는 y = -x 1차함수의 그래프 위에 있다.")
case let (x, y):
print("(\(x), \(y))의 좌표는 y = x, 또는 y = -x 그래프가 아닌 임의의 지점에 있다.")
}
👍