I\'m trying to write an extension to Array which will allow an array of optional T\'s to be transformed into an array of non-optional T\'s.
e.g. this could be writte
As of Swift 2.0, you don't need to write your own extension to filter nil values from an Array, you can use flatMap
, which flattens the Array and filters nils:
let optionals : [String?] = ["a", "b", nil, "d"]
let nonOptionals = optionals.flatMap{$0}
print(nonOptionals)
Prints:
[a, b, d]
There are 2 flatMap
functions:
One flatMap
is used to remove non-nil values which is shown above. Refer - https://developer.apple.com/documentation/swift/sequence/2907182-flatmap
The other flatMap
is used to concatenate results. Refer - https://developer.apple.com/documentation/swift/sequence/2905332-flatmap