HIT해

[Swift 기초문법 - 57] Tuple 본문

Swift/Swift 기초문법

[Swift 기초문법 - 57] Tuple

힛해 2024. 8. 20. 23:52
728x90

Tuple이란?

Swit에서 튜플은 다양한 값의 묶음이다.

튜플의 구성 요소들은 서로 다른 타입이 가능하며 개수도 사용하고 싶은 만큼 사용할 수 있다.


기본 예시

import UIKit

// (키: 값, 키: 값)
var myPet : (name: String, kind: String, age: Int) = (name: "댕댕이", kind: "강아지", age: 1)

// 키 명을 생략할 수 있다.
var myCat : (String, String, age: Int) = ("개냥이", "고양이", age: 1)

myCat.age

// 인덱스로 접근
myPet.0

 

키 이름이 생략할 수도 있으며 키 이름이 없다면 인덱스로 접근할 수도 있다.


메소드 반환 Tuple

// 반환 타입을 튜플로 선언
func someFunction() -> (first: String, String){
    return ("하하하", "호호호")
}

let result = someFunction()

result.first

// 인덱스로도 접근 가능
result.1

 

함수 반환타입으로써 tuple을 사용할 수 있고 접근하는 방법은 동일하다.


switch 에서의 tuple 사용

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


if case (x: 2, y:0) = somePoint {
    print("케이스에 들어옴")
}

func someGuardCheck(somePoint: (x: Int, y: Int)) {
    guard case (x: 2, y:0) = somePoint else {
        print("x :2, y: 0 이것이 아닙니다")
        return
    }
    print("완료")
}

someGuardCheck(somePoint: somePoint)

switch somePoint {
case (x: 0, y: 0):
    print("중심")
case (_, 0):
    print("x축에 있다")
case (x: 0, _):
    print("y축에 있다")
case (-2...2, -2...2):
    print("상자 안에 있다")
default:
    print("상자 밖")
}

 

 

실행결과


정리

객체를 만들지 않고 간단하게 구현이 가능하다.

Closure에서 하나로 묶어서 사용하는데에 자주 사용된다