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.