-
Swift - KeyValuePairsProgramming/Swift 2021. 10. 14. 15:47
안녕하세요 Beepeach 입니다 :)
오늘 공부해볼 Collection은 KeyValuePairs입니다.
지금까지 자주 사용하는 colleciton인 array, dictionary, set에 대해서 알아보았습니다.
KeyValuePairs는 자주 사용하는 collection은 아닙니다.
그냥 이런 collection도 있구나 하고 넘어가셔도 좋습니다.
KeyValuePairs
KeyValuePairs는 dictionary와 유사하게 생겼습니다.
하지만 차이점은 정렬이 되어있고 Key가 Hasable 프로토콜을 채용하지 않았다는 점입니다.
그렇기 때문에 검색이 dictionary에 비해서 느립니다.
또한 key가 중복이 돼도 상관없습니다.
KeyValuePairs를 만드는 방법은 dictionary literal을 이용합니다.
하지만 Set을 생성했을 때처럼 type annotation을 직접 해줘야 합니다.
예제를 확인해보면 key가 중복이 된 것을 확인할 수 있습니다.
그럼 한 가지 의문점이 듭니다.
Dictionary에서는 words["B"]와 같이 value에 접근했는데 keyValuePairs에서는 key가 중복이 된다면 word["B"]를 하면 어떤 값이 나올까요??
KeyValuePairs는 key로 접근하는 게 불가능합니다.
Array와 같이 index로 접근해야 합니다.
이게 가능한 이유는 정렬이 되어있기 때문이죠.
그리고 colletion이기 때문에 count, isEmpty와 같은 프로퍼티도 사용 가능하며 for-in loop에서 반복이 가능합니다.
하지만 append(_:) 메서드나 [] 서브스크립트로 추가하거나 remove(at:) 메서드로 삭제할 수 없습니다.
해당 기능을 제공하지 않기 때문입니다.
word[0] = nil과 같은 서브 스크립트도 제공하지 않습니다.
사용 이유
그럼 이 collection을 왜 사용할까요??
사실 사용을 잘하지 않습니다..
그냥 데이터의 구조가 key와 value의 쌍으로 이루어져 있고 크기가 작으며 정렬이 되어있어야 한다면 그때 사용하시면 됩니다.
참고자료
https://developer.apple.com/documentation/swift/keyvaluepairs
728x90'Programming > Swift' 카테고리의 다른 글
Swift - Enumeration Associated Value (0) 2021.10.16 Swift - Enumeration (열거형) (0) 2021.10.15 Swift - Set (0) 2021.10.14 Swift - Dictionary (0) 2021.10.08 Swift - Array (0) 2021.08.30