方法一,使用高阶函数 compactMap
let array = [1, 2, nil, 3, 4]
print(array.compactMap { $0 })
compactMap 这个方法名有点难以理解,我们也可以给集合类型添加一个扩展,重新命名一下
extension Collection {
func removeNils<Wrapped>() -> [Wrapped] where Element == Wrapped? {
compactMap { $0 }
}
}
方法二,另一种扩展实现
extension Collection {
func removeNils<Wrapped>() -> [Wrapped] where Element == Wrapped? {
var array: [Wrapped] = []
for value in self {
if let value {
array.append(value)
}
}
return array
}
}
本文同步自微信公众号 “iOS新知”,每天准时分享一个新知识,快来关注我吧!