Swift(11) Tuple

개발렬·2023년 7월 14일
0

Swift

목록 보기
11/23
post-thumbnail

Tuple

  • 여러 개의 값들을 하나로 묶어서 표현하는 자료형입니다.
  • 튜플은 서로 다른 타입의 값을 하나의 그룹으로 묶을 수 있으며, 고정된 크기와 순서를 가지고 있습니다.
let person = ("John", 25)

// 타입 명시적 지정
let point: (Int, Int) = (3, 5)

튜플의 각 요소는 인덱스를 사용하여 접근할 수 있습니다.

let person = ("John", 25)
print(person.0) // "John" 출력
print(person.1) // 25 출력

요소에 이름을 지정하여 더 가독성 있게 접근할 수도 있습니다.

let person = (name: "John", age: 25)
print(person.name) // "John" 출력
print(person.age) // 25 출력

함수나 메소드에서 여러 값을 반환하고 싶을 때, 임시적으로 여러 값을 묶어 사용하고 싶을 때 등에 활용됩니다.

투플의 단점

  1. 가독성 감소: 튜플은 요소의 의미를 명시적으로 표현하지 않고, 순서에 의존하여 값을 접근합니다. 이는 코드의 가독성을 저하시킬 수 있으며, 튜플의 요소가 많거나 복잡한 구조일수록 가독성 문제가 더 심해질 수 있습니다.

  2. 타입 안정성 부족: 튜플은 서로 다른 타입의 값을 묶을 수 있어 편리하지만, 컴파일러가 요소의 타입을 체크해주지 않습니다. 따라서 튜플에 잘못된 타입의 값을 할당하는 실수를 방지하기 위해 추가적인 주의가 필요합니다.

  3. 요소 수정 제한: 튜플은 생성된 후에는 요소를 개별적으로 수정할 수 없습니다. 튜플의 값을 변경하려면 새로운 튜플을 생성하여 전체 값을 대체해야 합니다. 이는 튜플이 불변성(immutable)을 가지는 데이터 구조라는 한계를 의미합니다.

  4. 구조적 제한: 튜플은 고정된 크기와 순서를 가지고 있기 때문에, 튜플에 새로운 요소를 동적으로 추가하거나 삭제하는 것이 불가능합니다. 만약 요소의 개수나 구조가 동적으로 변경되어야 하는 경우에는 클래스나 구조체를 사용하는 것이 더 적합할 수 있습니다.

profile
Flutter, iOS...나는 모바일 앱 개발자

0개의 댓글