swift 高阶函数

高阶函数,满足(输入一个或者多个函数)作为参数,或者(输出一个或多个函数)作为返回值的条件即为高阶函数。通俗的说,函数的参数或者返回值是函数,就是高阶函数。

swift常见的典型高阶函数map、flatmap、reduce、filter。

简单看一下map:

let nums = [1,2,4]

var nums1 = nums.map { $0+2}
print(nums)
print(nums1)
var num2 = nums.map { a in
    a+2
}
print(num2)
print(type(of: num2))

faltmap:

let nums = [1,2,4]

var nums1 = nums.flatMap{ a in
    a+2
}

map和flatmap区别:

当解析二维数组的时候,结果不同


let nums0 = [[1,2,3],[4,5,6]]
var nums01 = nums0.map { a in
    a.map { a0 in
        a0+2
    }
}
print(nums01)//结果是:[[3, 4, 5], [6, 7, 8]]

var nums02 = nums0.flatMap { a in
    a.map { a0 in
        a0+2
    }
}
print(nums02)//结果是:[3, 4, 5, 6, 7, 8]

reduce:


let nums = [1,2,4]
var nums1 = nums.reduce(0, {  x,y in
    x+y
})
print(nums1)//7

filter:


let nums = [1,2,4]


var nums2 = nums.filter { a in
    a%2==0
}
print(nums2)//[2,4]

对于高阶函数,个人观点:

高阶函数在UI层并不能体现它的好处,高阶函数仍然离不开代码设计和算法。

高阶函数的好处:更好的优化代码的可读性,简化代码。

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...