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