【发布时间】:2017-06-22 19:53:27
【问题描述】:
考虑这段代码...
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 是 Array<String>,而 result2 是 Array<Optional<String>>。但为什么呢?
我尝试过使用序列而不是数组,但也没有运气。
【问题讨论】:
-
这仍然不能解释
result2中的nil -
有关使此工作适用于可选数组的方法,请参阅stackoverflow.com/q/38434125/2976878
标签: arrays swift sequence flatmap