Swift version: 5.2
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 Would you describe yourself as knowledgeable, but struggling when you have to come up with your own code? Fernando Olivares has a new book containing iOS rules you can immediately apply to your coding habits to see dramatic improvements, while also teaching applied programming fundamentals seen in refactored code from published apps.
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.