나의 발자취

컬렉션 관련 이론: KeyValuePairs, Copy-On-Write 최적화 본문

앱 개발/iOS

컬렉션 관련 이론: KeyValuePairs, Copy-On-Write 최적화

달모드 2022. 5. 26. 02:22

KeyValuePairs란?

딕셔너리와 유사한 형태이지만, 배열처럼 순서가 있는 컬렉션

 - 스위프트 5.2 버전에 등장

 - 딕셔너리와 비슷한 형태지만, "순서"가 있는 컬렉션

 

 - key값이 해셔블(hashable)일 필요없음 (검색 알고리즘상 빠르지 않음)

 - key값이 동일한 것도 가능

 

let introduce: KeyValuePairs = ["first": "Hello", "second": "My Name", "third":"is"]

 

 

introduce.count

introduce.isEmpty

 

- []로 요소에 접근할 수 있다.

 

Copy-On-Write 최적화

코드상에서 값을 복사해서 담는다 하더라도 실제 값이 바뀌기 전까지는 하나의 메모리 값을 공유해서 사용한다. 메모리를 적게 사용하기 위해 스위프트 내부에서 자동으로 처리하는 메커니즘이다.

아래와 같은 경우에 일어나는것이다. subArrayarray의 메모리 주소를 가리키게 한다.

var array = [1, 2, 3, 4, 5, 6]

var subArray = array[0...2]

 

'앱 개발 > iOS' 카테고리의 다른 글

옵셔널 타입의 내부 구조  (0) 2022.05.27
열거형  (0) 2022.05.27
스위프트 컬렉션(3) Set  (0) 2022.05.26
스위프트 컬렉션(2) 딕셔너리  (0) 2022.05.25
스위프트 컬렉션 (1) 배열  (0) 2022.05.25
Comments