-
Swift - TupleProgramming/Swift 2020. 10. 12. 23:27
오늘은 Tuple에 대해서 함께 공부하는 시간을 가져볼게요 :)
Tuple
Tuple은 사용자가 직접 생성하는 Type입니다.
하지만 없던 새로운 Type을 생성하는 것이 아닙니다.
이미 존재하는 Type을 묶어서 생성할 수 있습니다.
Tuple에 핵심은 () (parenthesis, 괄호)입니다.
한 개 이상의 Type을 () 안에서 선언해주면 됩니다.
그럼 문법을 살펴보겠습니다!
() 안에 원하는 Type을 , (comma)로 나열하면 됩니다.
그리고 Type의 개수와 형식에 맞게 값을 할당해야 합니다.
또한 mutable(가변) Tuple로 생성하고 싶으면 var로 선언하면 됩니다.
그럼 바로 예시를 확인해 볼게요.
tupleStr은 Type Inference를 사용하여 Tuple을 생성했습니다.
Type을 확인해보니 (String, String, String) 타입이죠??
Tuple은 이렇게 존재하는 Type을 묶어서 표현할 수 있는 Type입니다.
그리고 Tuple에는 꼭 같은 Type만 와야 하는 게 아닙니다.
Type Annotation을 이용하여 people의 Type을 (String, Int, Double, Bool)로 지정했습니다.
그리고 각 Type에 맞는 형식으로 값을 할당했습니다.
Tuple Member
() 안에 , (comma)로 구별되어 있는 요소들을 Tuple Member라고 합니다.
각각의 Member는 index를 이용하여 Explicit Member Expression(점문법)으로 접근할 수 있습니다.
index는 0부터 시작하는 Int index를 사용합니다.
만약 존재하지 않는 index로 접근하려 한다면 에러가 발생하게 됩니다.
Mutable Tuple로 선언했다면 Tuple Member를 변경할 수 있습니다.
var로 선언한 Tuple만 변경이 가능합니다.
이렇게 Tuple을 만들었는데 people의 Member들이 무엇을 의미하는 값인지 아실 수 있겠나요???
작성자를 제외하고 다른 사람이 본다면 무슨 값인지 바로 알 수 없습니다.
가독성을 높이기 위해서 Tuple Member에 이름을 정해줄 수 있습니다.
Named Tuple
Named Tuple을 생성하는 문법을 살펴보겠습니다.
Unnamed Tuple과 달리 Type 앞에 name: 이 추가됐습니다. 이렇게 이름을 추가해주면 Member들이 의미하는 값이 무엇인지 한눈에 알아볼 수 있죠??
그럼 예시를 살펴보겠습니다.
이렇게 name을 설정하면 이제 Explicit Member Expression을 Int index가 아닌 name을 사용해 접근할 수 있습니다.
당연히 이전처럼 Int index를 사용한 접근도 가능합니다.
그리고 존재하지 않는 name으로 Member에 접근하면 에러가 발생합니다.
Tuple 주의 사항
Tuple Member의 개수는 생성할 때 결정되므로 Mutable Tuple로 선언해도 Member를 추가 또는 삭제할 수 없습니다.
참고자료
https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html
728x90'Programming > Swift' 카테고리의 다른 글
Swift - String - String의 종류, Multi-line String Literal (0) 2020.10.14 Swift - Tuple Decomposition, Matching (0) 2020.10.13 Swift - Closure (1) 2020.10.11 Swift - Function Notation, Function Type (0) 2020.10.09 Swift - Function Variadic, In-out Parameter (0) 2020.10.08