Tuple

Updated:

🔷 Tuple

튜플은 Swift 에서 Collection 중의 하나입니다

  • Collection : Array, Dictionary, Set, Tuple

튜플은 Key와 Value으로 이뤄진 묶음 입니다

예:) (key: value, key: value …)

var myPet = (name: "Coco", kind: "Dog", age: 5)

print(myPet.name) // Coco
print(myPet.kind) // Dog
print(myPet.age) // 5


// 요소의 순서로도 접근가능
print(myPet.0) // Coco
print(myPet.1) // Dog
print(myPet.2) // 5

// Tuple 요소에 접근해서 값 변경이 가능합니다
myPet.name = "Kity"
print(myPet.name) // Kity

// 하지만 한번 정한 형만 받고 다른 자료형은 못받습니다
myPet.name = 3 // Error: Cannot assign value of type 'Int' to type 'String'

🔶 Method return Tuple

튜플을 자주 사용되는것은 메소드의 반환형으로 사용할 때 입니다

예시, 매개변수로 숫자 배열을 받고, 튜플로 최소, 최대 숫자를 반환하는 예시 코드

func minMax(array: [Int]) -> (min: Int, max: Int) {
	var currentMin = array[0]
	var currentMax = array[0]
	for value in array[1..<array.count] {
		if value < currentMin {
			currentMin = value
		} else if value > currentMax {
			currentMax = value
		}
	}
	return (currentMin, currentMax)
}

let myNumber = [1, 5, 10, 8]

// 메소드의 반환형이 튜플 타입입니다
let result = minMax(array: myNumber)
print(result.min) // 1
print(result.max) // 10
print(result.0) // 1
print(result.1) // 10

🔶 스위치 문에서 Tuple 사용하기

Tuple 도 스위치에서 사용이 가능합니다

x, y 축 위치를 나타내는 somePoint 튜플

let somePoint = (x: 0, y: 1)

switch somePoint {
case (x: 0, y: 0):
	print("\(somePoint) 는 중심에 있습니다")
case (_, 0): // y축 값만 비교 y 가 0이라면
	print("\(somePoint) 는 x 축에 있습니다")
case (0, _): // x축 값만 비교 x 가 0이라면
	print("\(somePoint) 는 y 축에 있다")
case(-2...2, -2...2): // 상자의 크기가 4x4
	print("\(somePoint) 는 상자 안에 있다")
default:
	print("\(somePoint) 는 상자 밖에 있다")
}
// (x: 0, y: 1) 는 y 축에 있다

Reference

Swift Tip of the day - 스위프트 기초 문법 - https://spangle-wedelia-2dc.notion.site/Swift-Tip-of-the-day-c428bfd990674bcfa2a4973e5d08c4eb

꼼꼼한 재은 씨의 스위프트 문법편 - https://book.jacobko.info/#/book/1186710233

Categories:

Updated:

Leave a comment