如何使用compactMap过滤掉属性中可能的nil值,这样我就不必预测nil属性来返回对象。
目前我有
let objects: [Object] = anotherObject.array.compactMap ({
return Object(property: $0.property!)
})
我想要的是一些保护标准或选项来过滤掉这些可能具有可能为零的属性的对象。例如,如果$ 0.property为零
你仍然可以使用Array.compactMap
用if语句
anotherObject.array.compactMap { object in
if let property = object.property {
return Object(property: property)
}
return nil
}
随着警卫声明
anotherObject.array.compactMap {
guard let property = $0.property else { return nil }
return Object(property: property)
}
三元运算符的例子
anotherObject.array.compactMap { object in
object.property == nil ? nil : Object(property: object.property!)
}
你可以这样做:
let objects: [Object] = anotherObject.array.compactMap {
return $0.property == nil ? nil : $0
}
或者使用filter
:
let objects: [Object] = anotherObject.array.filter { $0.property != nil }