튜플언제 사용하나??
- 여러개의 데이터를 열거하여 담아두는데 사용
하나의 상수에 두개이상의 값을 저장하는게 불가능함
- Int나 String 자료형들은 하나의 값만 저장하는 스칼렛 타입이라 그럼
튜플은 컴파운드 타입으로 다음과 같이 두개이상의 값을 저장할 수 있음
// 튜플 사용법
(expr1,expr2,expr...)
expr는 각각 tuple Member임
튜플은 (Int, String, Double)각각의 자료형으로 저장한다.
값에 접근하기 위해 접문법(Expicit Member Expression)을 사용하는데
위에 보이는 0 , 1, 2 는 튜플의 Index이다.
이때 상수일경우 값을 바꿀 수 없으며 변수일때만 값을 변경할 수 있다.
튜플은 값형식임(새로운 변수에 저장하면 값이 복사됨)
tupleExample이라는 변수에 extuple라는 튜플을 저장하면 복사된다.
tupleExample의 값을 변경하면 tupleExample의 값은 변경되지만 exTuple은 변경되지 않는 것을 볼 수 있다.
이렇게 본 튜플은 Index로 접근해야만 하므로 가독성 측면에서 단점이 있고 Tuple member에 이름이 없기때문에
UnNamed Tuple들임
이와 반대로 멤버이름을 통해 어떤것인지 유추가능 할 수 있는 Named Tuple도 있음
NamedTuple
//Named Tuple 사용법
(name1:expr1,name2:expr2,name3:expr3...)
//인덱스값이 아닌 tuple member의 이름을 사용
tupel.memberName
Tuple Decompositon (튜플 분해)
튜플에 저장되어 있는 멤버를 개별상수, 변수에 따라 저장할 수 있음
각각 이름을 지정해주어 하나하나 지정할 수도 있고
한번에 분해하여 저장할도 있음
단일값으로 분해되어 앞에서부터 순서대로 분해됨
와일드카드를 이용해 생략도 가능함
조건문에서 튜플 사용해버리기~
Tuple은 보통 조건문에서 많이 사용됨
if문에서 튜플 사용했을때에는 가독성이 떨어짐
Interval matching
wildcard
value binding을 사용한 예제이다.
문자열보다는 숫자가 적합해보이긴 하다.
잘 파악해두어 적재적소에 사용하면 좋을듯하다.
'Swift랑 친해지기 > Swift문법정리' 카테고리의 다른 글
[Swift] String & Characters (문자열 & 문자) (0) | 2022.08.17 |
---|---|
[Swift] Closure (클로져) (0) | 2022.08.16 |
[Swift] Escaping Closure (0) | 2022.08.15 |
[Swift] Capturing values (0) | 2022.08.15 |
[Swift] Syntax-optimization (문법 최적화) (0) | 2022.08.15 |