Swift version: 5.10
Reading a dictionary key returns an option value by default, because the key you asked for might not exist. However, there’s a slightly different subscript you can call that eliminates optionality: when you read a key, you can also provide a default value to use if the key doesn’t exist.
For example, here’s a dictionary representing the high scores in a game:
var scores = ["Taylor Swift": 25, "Ed Sheeran": 20]
If we wanted to read the score of Adele Adkins, we’d get back nil
because she doesn’t have a score. And if we tried to read any of the values that do have keys we’d still get back an optional integer.
Fortunately, if you provide a default value while reading a key you can be guaranteed you’ll always get a value back, so the return value for our scores
dictionary will always be a real integer rather than an optional.
So, here we can read Adele’s score from the dictionary, or give it a default value of 0 if the key doesn’t exist:
var adeleScore = scores["Adele Adkins", default: 0]
SPONSORED Alex is the iOS & Mac developer’s ultimate AI assistant. It integrates with Xcode, offering a best-in-class Swift coding agent. Generate modern SwiftUI from images. Fast-apply suggestions from Claude 3.5 Sonnet, o3-mini, and DeepSeek R1. Autofix Swift 6 errors and warnings. And so much more. Start your 7-day free trial today!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 8.0 – learn more in my book Pro Swift
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.