swift fast enumeration of optionals
If you're using Swift 2:
let array: [Any] = [5,"a",6]
for case let item as Int in array {
print(item)
}
With Swift 5, you can choose one of the following Playground sample codes in order to solve your problem.
#1. Using as
type-casting pattern
let array: [Any] = [5, "a", 6]
for case let item as Int in array {
print(item) // item is of type Int here
}
/*
prints:
5
6
*/
#2. Using compactMap(_:)
method
let array: [Any] = [5, "a", 6]
for item in array.compactMap({ $0 as? Int }) {
print(item) // item is of type Int here
}
/*
prints:
5
6
*/
#3. Using a where clause and is
type-casting pattern
let array: [Any] = [5, "a", 6]
for item in array where item is Int {
print(item) // item conforms to Any protocol here
}
/*
prints:
5
6
*/
#4. Using filter(_:)
method
let array: [Any] = [5, "a", 6]
for item in array.filter({ $0 is Int }) {
print(item) // item conforms to Any protocol here
}
/*
prints:
5
6
*/
Two solutions
let a = [5,"a",6]
a.filter {$0 is Int}.map {print($0)}
or
for item in a where item is Int {
print(item)
}
actually there are no optionals at all in the array