Swift version: 5.6
KeyValuePairs
, somewhat confusingly known as DictionaryLiteral
before Swift 5.0, is a useful data type that provides dictionary-like functionality with a handful of benefits:
Hashable
.However, because KeyValuePairs
doesn’t require its keys to be hashable, you don’t get the fast key look up of a regular dictionary – it’s O(n) rather than O(1) if you like Big O notation. Instead, you access them like an array, using numerical indexes.
As an example, here’s a KeyValuePairs
instance holding the name of a singer:
let singer: KeyValuePairs = ["firstName": "Taylor", "lastName": "Swift"]
If we wanted to access the key name and value for the first item, we’d write something like this:
print("\(singer[0].key) is set to \(singer[0].value)")
Even better, because KeyValuePairs
inherits from the Sequence
protocol we can loop over all keys and values, like this:
for value in singer {
print("\(value.key) is set to \(value.value)")
}
TAKE YOUR SKILLS TO THE NEXT LEVEL If you like Hacking with Swift, you'll love Hacking with Swift+ – it's my premium service where you can learn advanced Swift and SwiftUI, functional programming, algorithms, and more. Plus it comes with stacks of benefits, including monthly live streams, downloadable projects, a 20% discount on all books, and free gifts!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 8.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.