-
swift - Collection Types Overviewswift 2021. 1. 6. 23:26
Collection Types
배열, dictinary set?
swift는 3가지 collection Type을 제공
1. Array
- 배열은 데이터를 순서대로 저장하는 collection
2. Dictionary
- key, value 쌍으로 저장
3. set
집합인데 수학에서 제공하는 집합 메소드를 사용가능
swift는 두가지 collection을 제공
foundation collection - class로 구현된 것
- 참조 형식
swift collection - struct로 구현된 것
- 값 형식
Foundation Collection은 객체형식만 저장가능
swift Collection은 객체, 값 둘다 저장가능
Foundation은 객체만 저장할 수 있지만 객체안에는 어떤 자료형이던 상관 없음
Swift Collection은 문자열을 저장하는 컬렉션에는 문자열 외에는 다른 것을 저장할 수 없다.
- > 그래서 선언 시점에 저장할 데이터의 자료형을 명시적으로 선언한다.
Collection을 이루는 데이터를 Element 또는 entry라고 부름
Foundation Collection은 가변 컬렉션과 불변 컬렉션을 별도의 클래스로 결정
- Mutable이 붙으면 가변, 안붙으면 불변
swift collection은 키워드로 구분
Collection의 불변, 가변성은 Collection에 저장된 요소의
불변, 가변성에 영향을 주지 않는다.
불변 Collection에 가변 문자열이 저장되어 있으면
Collection 자체를 수정할 순 없지만 문자열은 변경가능
가변 Collection에 불변 문자열이 저장되어 있는경우
Collection 자체 수정가능 그러나 문자열을 수정할 수 없음
아까 말했듯 swift Collection은 구조체로 구현된 값형식
- 그래서 값이 사용될 때마다 복사되어야 하는데 상대적으로 큰 데이터이기 떄문에
문자열과 마찬가지로 반드시 복사가 필요한 경우에만 복사 실행(copy-on-write)
-> collection이 변경되지 않으면 복사실행 x, 메모리 공유
'swift' 카테고리의 다른 글
swift - Array #2 (Adding Elements, Remove Elements ) (0) 2021.01.07 swift - Array #1 (Array Literal, Creating an Array, Inspecting an Array, Accessing Elements) (0) 2021.01.07 swift - Character Set (0) 2021.01.06 swift - Options (0) 2021.01.06 swift - Comparing Strings (0) 2021.01.06