Consider this code...
import Foundation
let source = ["A", "B", nil, "D"]
print(type(of:source))
let result1 = source.flatMap{ $0 }
print(type(of:result1))
print(result1)
extension Array
{
func sameThing() -> Array
{
return self.flatMap{ $0 }
}
}
let result2 = source.sameThing()
print(type(of:result2))
print(result2)
result1
is an Array<String>
while result2
is an Array<Optional<String>>
. But why?
I've tried using a Sequence instead of an array, but no luck there either.