본문 바로가기
프로그래밍/Swift

스위프트의 튜플(Tuple)이란?

by Mr-후 2018. 3. 14.
반응형

스위프트 문법책과 실전편 책 두권을 보았다. 실제 iOS프로젝트를 하는거에 있어서 스위프트로 개발하는 부분은 어려운 점은 없을 것 같은데 다만, 문법적으로 옵셔널과 다양한 스위프트의 기능들을 어떤식으로 응용할지는 아직 잘 모르겠다. 

기본적으로 옵셔널에 대한 이해, 타입캐스팅과 프로토콜, 익스텐션등에 대해 잘 이해하고 활용한다면 오브젝티브-C처럼 개발 프레임을 만들어 두고 사용하면 편할 것 같다. 


'야곰' 이란 분이 펴낸 스위프트 프로그래밍에 있는 내용 중, 튜플이라는 것을 요약 정리해서 다시 한번 이해를 하고자 한다. 


데이터 타입의 고급편에 소개된 튜플. 

타입의 이름이 따로 지정되어 있지 않은, 개발자가 임의로 만드는 타입이다. C언어의 원시 구조체의 형태와 비슷. 


튜플에 포함될 데이터의 개수는 자유롭게 정할 수 있다. 



//String, Int, Double타입을 갖는 튜플 

var personInfo: (String, Int, Double, String) = ("yhmin", 80,175.5, "younghu.min@gmail.com") 


//인덱스를 통해 값에 접근 

let name: String? = personInfo.0

let weight: Int? = personInfo.1

print("name: \(name!)")

print("weight: \(weight!)")


위에 선언된 튜플에는 라벨이 없다. 따라서 각각의 값이 무엇을 의미하는지 파악히 어렵기 때문에 라벨을 붙혀주는 것이 좋다. 


var personInfo2: (name : String, weight: Int, height: Double, email: String) = ("yhmin", 80, 175.5, "younghu.min@gmail.com")


if let name2 = personInfo2.name as String? {

    print(name2)

}


이렇게 만들어진 튜플은 typealias 지시자를 사용해서 사용자 데이터타입으로 선언해서 사용하면 된다. 


typealias PersonInfoTuple: (name : String, weight: Int, height: Double, email: String) = ("yhmin", 80, 175.5, "younghu.min@gmail.com")


let younghu: PersonInfoTuple = ("yhmin", 82, 180.0, "zend4u@naver.com") 



반응형