關于compactMap函數
蘋果在Swift 4.1中新增compactMap函數,用來代替flatMap函數。
在Swift标準庫中compactMap定義如下
在Swift标準庫中flatMap定義如下
從定義可以看出,經過flatMap後一定變成字元串數組,而compactMap是任意類型的數組。進而compactMap使用更加靈活。
compactMap函數的應用
1.過濾 nil
let nums = [, nil, , nil, ]
let result = nums.compactMap { (item) -> Int? in
return item
}
print(result) // [, , ]
簡潔文法,可這樣使用
let result = nums.compactMap { return $ }
print(result) // [1, 3, 5]
2.類型轉換
let nums = [, , , , ]
let result = nums.compactMap { (item) -> String? in
return "\(item)"
}
print(result) // ["1", "2", "3", "4", "5"]
簡潔文法,可這樣使用
let nums = [, , , , ]
let result = nums.compactMap { return "\($0)" }
print(result) // ["1", "2", "3", "4", "5"]
3.篩選資料 - 能被4整除的數
let nums = [, , , , ]
let result = nums.compactMap { (item) -> Int? in
if item% == {
return item
}
return nil
}
print(result) // [12, 44]
compactMa函數不僅僅以上的使用,本文隻是引進門。