美文网首页
Swift标准数组的三个高阶函数

Swift标准数组的三个高阶函数

作者: 逐水而上 | 来源:发表于2017-05-16 12:23 被阅读27次

    Swift的标准数组支持三个高阶函数:mapfilterreduce,它们使得对数组的一些具体操作更加简洁、优雅、高效。

    这里我们首先创建一个简单的数组:

    let money = [10, 20, 30, 45, 32]```
    ***
    ####map
    转换,将每个数组元素通过某个方法进行转换,得到一个能更方便我们使用的新的数组。
    
    比如:把上面的money数组转换为`["10元", "20元", "30元", "45元", "32元"]`以供UI显示 。
    

    var mappedArray = money.map({"($0)元"})```
    这里给map传入一个最简形式的闭包来对原始数组money中的每一个元素进行操作。
    如果不使用map函数,那么常规方式就是创建一个新数组,然后遍历原始数组money,在遍历过程中对money的每一个元素进行操作,然后加入到新数组中,哪种方式更加优(zhuang)雅(13)一目了然。


    filter

    过滤,对数组中的元素按照某种规则进行过滤,得到一个每个元素都符合此规则的新数组。

    比如:筛选出money数组中大于30的所有元素 。

    var filterArray = money.filter({$0 > 30})```
    这里给filter传入一个最简形式的闭包作为筛选条件。
    ***
    ####reduce
    计算,把数组元素通过某种运算组合计算为一个值。
    
    比如:把对money数组中的元素求和。
    

    var sum = money.reduce(0, {$0 + $1})//第一个参数是设置的初始值,$0表示计算后的结果, $1表示数组中的每一个元素```

    注:以上函数中使用的闭包都忽略了参数名,并且使用默认参数,返回类型隐式推断,对闭包不熟悉的右转百度,不谢~。

    相关文章

      网友评论

          本文标题:Swift标准数组的三个高阶函数

          本文链接:https://www.haomeiwen.com/subject/rorojttx.html