ContiguousArray<Element>는 메모리에 요소들이 연속적으로 저장되는 배열 타입
Swift공식 문서 기준:
ContiguousArray는Array와 비슷하지만 항상 연속된 메모리(contiguous storage)를 보장한다.
📚 참고: ContiguousArray
일반적인 Array는 값 타입(struct)이고 Copy-on-Write이다. 그래서 항상 메모리 연속이 보장되지는 않음
하지만 ContiguousArray는 Objective-C 브리지 안 함 Swift 전용이고 항상 연속된 메모리이다.
성능이 진짜 중요한 경우 적절한 배열이다.
연속 메모리의 장점: CPU 캐시 효율 높음, 반복문, 수치 연산, 그래픽 처리 빠름, low-level 연산 유리
대부분은 Array 쓰면 됨
성능 병목이 확인되었을 때만 ContiguousArray 고려
예시) 이미지 처리, 수치 계산, 게임 / 그래픽, 대량 데이터 반복 처리
Hashable: 값을 해시 값(hash value)으로 변환할 수 있는 타입Set에 넣고 싶을 때Dictionary의 key로 쓰고 싶을 때Swift는 조건이 맞으면 자동으로 Hashable을 만들어 줌Hashable이면 가능struct User: Hashable {
let id: Int
let name: String
}
String과 Int는 이미 Hashable 이라 가능하다.