나의 발자취
컬렉션 관련 이론: KeyValuePairs, Copy-On-Write 최적화 본문
KeyValuePairs란?
딕셔너리와 유사한 형태이지만, 배열처럼 순서가 있는 컬렉션
- 스위프트 5.2 버전에 등장
- 딕셔너리와 비슷한 형태지만, "순서"가 있는 컬렉션
- key값이 해셔블(hashable)일 필요없음 (검색 알고리즘상 빠르지 않음)
- key값이 동일한 것도 가능
let introduce: KeyValuePairs = ["first": "Hello", "second": "My Name", "third":"is"]
introduce.count
introduce.isEmpty
- []로 요소에 접근할 수 있다.
Copy-On-Write 최적화
코드상에서 값을 복사해서 담는다 하더라도 실제 값이 바뀌기 전까지는 하나의 메모리 값을 공유해서 사용한다. 메모리를 적게 사용하기 위해 스위프트 내부에서 자동으로 처리하는 메커니즘이다.
아래와 같은 경우에 일어나는것이다. subArray는 array의 메모리 주소를 가리키게 한다.
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