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 Let’s face it, SwiftUI previews are limited, slow, and painful. Judo takes a different approach to building visually—think Interface Builder for SwiftUI. Build your interface in a completely visual canvas, then drag and drop into your Xcode project and wire up button clicks to custom code. Download the Mac App and start your free trial today!
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.