티스토리 뷰
Colletion Types
컬렉션 타입
Swift는 기본적으로 3개의 원시 컬렉션 타입을 갖고 있습니다. 이들은 값들을 다양한 목적에 따라 저장하고 관리하는데 사용됩니다.
해당 컬렉션들은 Array, Set, Dictionary 등으로 모두 Swift Standard Library에 속해있습니다
스위프트의 기본적인 세가지 컬렉션 타입에 대해서 각 한줄로 정의해보자면, 아래와 같습니다.
- 배열(Array)는 정렬된 값들의 컬렉션입니다.
- 셋(Set)은 중복되지 않은 고유값들을 지닌 비정렬 컬렉션입니다.
- 딕셔너리(Dictionary)는 중복되지 않은 고유값들을 가지 Key-Value 타입, Hash타입의 컬렉션입니다.
위의 이미지는 Array, Set, Dictionary 세가지 컬렉션의 데이터 저장 방식을 단적으로 보여줍니다.
스위프트에서 기본적으로 지원하는 Array, Set, Dictionary는 내부적으로 저장한 값들에 대한 명확한 타입을 갖습니다. 그 의미는 실수에 의해 컬렉션에 잘못된 타입의 값을 넣을 수 없다는 것을 의미합니다. 이는 즉 컬렉션으로 부터 어떠한 값을 갖게 될 때 타입에 관해서 신뢰성을 보장할 수 있다는 것을 의미하는 것입니다. 🤗
NOTE
스위프트의 배열, 셋, 딕셔너리 타입들은 모두 제네릭(Generic) 컬렉션입니다. 제네릭 타입에 대한 내용이 궁금하시다면, 스위프트 공식문서에서 Gerneric 을 찾아보세요. 👨🏻💻
Mutability of Collections
컬렉션의 변경가능성
만약 Array, Set, Dictionary 등의 컬렉션들을 변형가능한, 변수(var, variable)로서 사용한다면, 해당 컬렉션들은 변형가능한 컬렉션이 됩니다. 이는 컬렉션이 만들어진 이후로 값이 추가되고 / 제거되고 / 변경되는 것이 가능하다는 의미입니다.
그와 반대로 만약 변경이 되지않는 상수타입의 컬렉션을 생성하고 싶다면, 컬렉션 변수 명 앞에 var 키워드 대신 let을 선언해서 변경되지 않도록 사용할 수도 있습니다. 이처럼 컬렉션은 상황과 목적에 따라 변수타입, 상수타입 중에 선택해서 사용할 수 있습니다.
변경할 필요가 없는 컬렉션이 필요한 경우, 컬렉션을 변경할 수 없는(immutable) 상수로서 선언해서 사용하는 것은 좋은 방법이 됩니다. 이러한 상황에 맞는 상수 / 변수 선택은 스위프트 컴파일러가 컬렉션의 성능을 최적화 하는데에 있어 도움을 줄 수 있습니다.
'iOS 개발 > 개발자문서 정보' 카테고리의 다른 글
Swift 문법, Extension에 Generic Where 절 활용하기 (0) | 2020.07.28 |
---|---|
스위프트 문법, Generic Where 절 특징 및 사용방법 (0) | 2020.07.27 |
Swift RandomAccessCollection 프로토콜 특징, 사용법 (0) | 2020.07.25 |
Swift 문법, Extension 확장 역할 및 사용방법 (0) | 2020.07.21 |
Swift 문법 Error Handling, 에러처리 특징 및 사용법 (0) | 2020.07.20 |
- Total
- Today
- Yesterday
- 백준알고리즘
- Protocol
- 스위프트
- 개발자문서
- 알고리즘
- Collection
- swift 문자열
- 컬렉션
- 김프매매
- 프로토콜
- swift언어
- swift reduce
- 프로그래머스
- ios
- SwiftUI
- 알고리즘문제
- 백준swift
- swift문제
- Swift 알고리즘
- createML
- publisher
- 부스트코스
- 자연어처리
- swift 기초
- CoreML
- 프로그래머스swift
- swift알고리즘
- swift string
- uikit
- swift
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |