Swift version: 5.6
Consider an array of items containing some optionals, like this one:
let numbers: [Int?] = [1, nil, 3, nil, 5]
If you want to loop over all the items and print them out, you’d write something like this:
for number in numbers {
print(number)
}
However, that prints out all items in their current state: optionally wrapped integers for some, nil for others.
With a small change to that loop, you can have Swift unwrap all the optionals then only enter the loop for any that contain a value – any nil
items are ignored. This is done using for case let
syntax, like this:
for case let number? in numbers {
print(number)
}
That will print the numbers 1, 3, and 5.
SPONSORED From March 20th to 26th, you can join a FREE crash course for mid/senior iOS devs who want to achieve an expert level of technical and practical skills – it’s the fast track to being a complete senior developer!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS – 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.