본문 바로가기

IOS Swift

Tuple이란? - Swift

Swift의 타입

 

Tuple을 설명하기 전에 Swift의 타입들을 정리하고 넘어가는게 좋을 것 같아서 정리해 봤습니다.

스위프트의 타입에는 2가지 종류가 있습니다.

Named TypeCompound Type이 있고

Compound Type안에는 Function Type과 Tuple타입이 있습니다.

 

  • Named Type :  클래스, 구조체, 열거형, 프로토콜, 기본데이터타입들 
  • Compound Type 
    • Function Type :  ex)let sum: (Int, Int) -> Int = { return $0 + $1 }
    • Tuple Type

 

 


Tuple

쉼표로 구분한 타입들을 괄호로 테두리 친 목록입니다.

튜플은 Compound Type(복합 종류) 이름에서 알 수 있다시피

여러가지 타입들을 괄호 안에  관련있는 것들끼리 묶어서 사용 할 수 가 있어서

가독성을 향상 시킬 수 있습니다.

 

사용법

let tuple: (Int, String) = (1, "튜플")

print(tuple.0) //1
print(tuple.1) //튜플

 

이렇게 tuple.index를 사용하여 값에 접근할 수 있습니다.

하지만 0이 뭔지, 1이 뭔지 알 수 없잖아요? 방법이 있습니다. ㅎㅎ

 

튜플 가독성 높이기

Type Annotation (타입 보조 설명)

let tuple: (number: Int,text: String) = (1, "튜플")
let tuple2 = (number: 1, "튜플")

print(tuple.number) //1
print(tuple2.number) //1
print(tuple2.1) //튜플

 

요런식으로 ‘타입 보조 설명’ 은 타입 앞에 ‘타입 특성 (type attributes) 목록’ 을 선택 사항으로 담고 있을 수 있습니다.

 

튜플 분해 (Tuple Decomposition)

튜플은 여러가지 타입들을 묶어논 것이라고 했죠? 그런데 묶은 것을 다시 풀 수도 있습니다.

let tuple: (number: Int,text: String) = (1, "튜플")

var (newNumber, newText) = tuple
newText = "새로운튜플"
print(newText)

 

튜플은 언제쓰나?

서로 타입이 다른 여러개의 값을 하나의 타입으로 묶어서 사용하고 싶다. 그럴 때 사용하면 됩니다.

엥 그럼 구조체나 클래스 쓰면 되잖아요. 뭐 그렇게 말 할 수도 있는데 간단히 사용하는데에는 구조체보다는 튜플이 훨씬 짧은 코드로

사용 할 수 있으니까 튜플을 사용하는 것 같습니다.

또한 하나를 두고두고 계속 쓰려면 튜플 보다는 구조체 나 클래스를 쓰고 일시적으로 사용 할 때만 튜플을 사용 합니다.

저는 특히 튜플+switch문의 합이 좋다고 생각하는데

let tuple: (number: Int,text: String) = (1, "튜플")

switch tuple {
case let(num, str) where num == 2 :
    print("num == 2" )
case (1, _) :
    print("num == 1" )
case (3...5, "튜플") :
    print("number가 3~5, text가 튜플인 것")
default :
    break
}

이런식으로 튜플 안에 있는 값들을 비교할 때 간결하게 쓸 수 있어서 좋은 것 같습니다.

 

 


참고 : https://zeddios.tistory.com/207

 

Swift ) Types

안녕하세요 :) Zedd입니다. 지금 tuple에 관한 글을 쓰고 있는 중인데, 간단하게 Swift의 Type에는 어떤것들이 있는지 알아보려고 해요 :) 굉장히 짧은 글이 될 듯 한데, tuple을 알려면 꼭 알아야 할 것

zeddios.tistory.com

참고 : https://babbab2.tistory.com/31

 

Swift) 튜플(Tuple)에 대해 알아보자

안녕하세여 소들이빈다 👀 오늘은 오랜만에 Swift 문법에 대한 포슽팅을 해볼라고 합니다 :) 아 이번주만 버티면 추석 연휴까지 9일을 쉬어서 마음이 붕붕........... 🐝ㅎㅎ 쉬는 날에도 알고리즘

babbab2.tistory.com

참고 : https://xho95.github.io/swift/language/grammar/types/self/2020/02/20/Types.html

 

Swift 5.5: Types (타입)

Apple 에서 공개한 The Swift Programming Language (Swift 5.5) 책의 Types 부분을 번역하고, 설명이 필요한 부분은 주석을 달아서 정리한 글입니다. 전체 번역은 Swift 5.5: Swift Programming Language (스위프트 프로그

xho95.github.io

 

반응형

'IOS Swift' 카테고리의 다른 글

[자료구조] HashTable 이란?  (0) 2021.08.29
Hashable 이란? - Swift  (2) 2021.08.24
Frame과 Bounds의 차이  (4) 2021.08.03
Swift 네이밍 컨벤션  (0) 2020.12.09
Git branch 생성하기  (0) 2020.12.09