在数组中,我们可以用map
关键字,将一个数组进行计算,从而生成一个新的数组。在Swift标准库中声明如下:
public func map<T>(_ transform: (Element) throws -> T) rethrows -> [T]
现在有个需求,要将某个 Int? 乘 2。一个合理的策略是如果这个 Int? 有值的话,就取出值进行乘 2 的操作,如果是 nil 的话就直接将 nil 赋给结果。依照这个策略,我们可以写出如下代码:
let num: Int? = 3
var mResult: Int?
if let realNum = num {
mResult = realNum * 2
} else {
mResult = nil
}
print(mResult) // 输出Optional(6)
Optional
也有一个map
方法,那么我们就可以将上面的代码用更优雅的方式书写。
标准库中的声明如下:
public func map<U>(_ transform: (Wrapped) throws -> U) rethrows -> U?
修改如下:
let num: Int? = 3
let numResult = num.map { return $0 * 2 }
print(numResult) // 输出Optional(6)
有了这个方法,上面的代码就可以大大的简化。