728x90
안녕하세요.
이번엔 Swift의 Collection 중 하나인 KeyValuePairs에 대해 알아보려고 해요.
# KeyValuePairs
KeyValuePairs는 순서가 있는 key-value 쌍을 저장하는 collection 입니다.
순서가 있기 때문에 Dictionary보다 value를 찾는 속도가 느립니다.
또한 순서가 있기 때문에 Dictinary와는 다르게 element가 Hashable 프로토콜을 준수할 필요가 없습니다.
그리고 같은 키를 중복해서 저장할 수 있어요.
KeyValuePairs는 ExpressibleByDictionaryLiteral 프로토콜을 준수하기 때문에, dictionary literal을 사용해서 KeyValuePairs 인스턴스를 만들 수 있습니다.
특정 key에 매칭된 값을 찾으려면 firstIndex(where:) 함수를 사용해서 모든 element를 검사해야 합니다.
# KeyValuePairs 파라미터
인자로 전달할 때는 dictionary literal을 전달하면 자동으로 KeyValuePairs 인스턴스가 전달됩니다.
그러나 dictionary literal로 변수를 생성하고 그 변수를 인자로 넘기는 것은 안됩니다.
(변수는 이미 Dictionary 타입이 되었기 때문이에요.)
# KeyValuePairs와 Dictionary 차이점
KeyValuePairs | Dictionary | |
element 순서 | 있음 | 없음 |
key lookup 속도 | 느림 | 빠름 |
Hashable 프로토콜 | 준수할 필요 없음 | 준수해야 함 |
중복 키 | 가능 | 불가능 |
# 참고
이번 글은 여기서 마무리.
반응형
'Swift' 카테고리의 다른 글
propertyWrapper로 UserDefaults 관리 (0) | 2024.05.11 |
---|---|
@discardableResult (0) | 2024.01.28 |
Memory Safety (1) | 2024.01.25 |
클래스(class type) 생성자에 대해 알아보자 (0) | 2024.01.21 |
구조체(value type) 생성자에 대해 알아보자 (0) | 2024.01.17 |