Swift 中map、flatMap、filter、reduce的介绍

1.map函数

map方法获取一个闭包表达式作为其唯一参数。 数组中的每一个元素调用一次该闭包函数,并返回该元素所映射的值。
简单说就是可以对数组中的元素格式进行转换,最后返回一个新的数组。

//将Int数组转换为String数组
//$0代表数组的元素
let array = [1, 2, 3, 4, 5 , 6, 7]
let result = array.map{
  String($0)
}


2.flatMap函数

flatMap 方法同 map 方法比较类似,只不过它返回后的数组中不存在 nil(自动把 nil 给剔除掉),同时它会把 Optional 解包。

3.filter函数

filter 方法用于过滤元素,对数组中的元素按照某种规则进行过滤。

//在array中过滤出偶数
let result2 = array.filter{ 
  $0 % 2 == 0
}

4.reduce 

reduce方法把数组元素组合计算为一个值,并且会接受一个初始值,这个初始值的类型可以和数组元素类型不同。
 

//计算数组array元素的和
//在这里$0和$1的意义不同,$0代表元素计算后的结果,$1代表元素
//10代表初始化值,在这里可以理解为 $0初始值 = 10
let result3 = array.reduce(10){  
  $0 + $1
}

 

你可能感兴趣的:(Swift)