在數(shù)組中脯丝,我們可以用map
關(guān)鍵字,將一個數(shù)組進行計算宾濒,從而生成一個新的數(shù)組。在Swift標準庫中聲明如下:
public func map<T>(_ transform: (Element) throws -> T) rethrows -> [T]
現(xiàn)在有個需求屏箍,要將某個 Int? 乘 2绘梦。一個合理的策略是如果這個 Int? 有值的話橘忱,就取出值進行乘 2 的操作,如果是 nil 的話就直接將 nil 賦給結(jié)果卸奉。依照這個策略钝诚,我們可以寫出如下代碼:
let num: Int? = 3
var mResult: Int?
if let realNum = num {
mResult = realNum * 2
} else {
mResult = nil
}
print(mResult) // 輸出Optional(6)
Optional
也有一個map
方法,那么我們就可以將上面的代碼用更優(yōu)雅的方式書寫榄棵。
標準庫中的聲明如下:
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)
有了這個方法敲长,上面的代碼就可以大大的簡化。