Swift 烧脑体操(三) - 高阶函数

本文介绍了Swift中的高阶函数概念及其应用。通过具体实例讲解了如何利用高阶函数进行数组排序和遍历操作,并探讨了Swift特有的Trailing Closure语法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

\\

Swift 其实比 Objective-C 复杂很多,相对于出生于上世纪 80 年代的 Objective-C 来说,Swift 融入了大量新特性。这也使得我们学习掌握这门语言变得相对来说更加困难。不过一切都是值得的,Swift 相比 Objective-C,写出来的程序更安全、更简洁,最终能够提高我们的工作效率和质量。

\\

Swift 相关的学习资料已经很多,我想从另外一个角度来介绍它的一些特性,我把这个角度叫做「烧脑体操」。什么意思呢?就是我们专门挑一些比较费脑子的语言细节来学习。通过「烧脑」地思考,来达到对 Swift 语言的更加深入的理解。

\\

这是本体操的第三节,练习前请做好准备运动,保持头脑清醒。

\\

准备运动:基础知识

\\

在上一节里面,我们其实已经涉及到了高阶函数了。在 Wikipedia 中,是这么定义高阶函数(higher-order function)的,如果一个函数:

\\
  • 接受一个或多个函数当作参数\\t
  • 把一个函数当作返回值\

那么这个函数就被称作高阶函数。下面是一个简单的排序的例子,在这个例子中,传进去的参数就是一个函数:

\\
\let numbers = [1, 4, 2, 3]\let res = numbers.sort {\    $0 \u0026lt; $1\}\
\\

Trailing Closure Syntax

\\

上面的代码看着不像是函数作为参数存在,这是因为 Swift 的 Trailing Closure 特性。Swift 允许当函数的最后一个参数是闭包的时候,以紧跟 { } 的形式,将最后一个闭包的内容附加在函数后面。

\\

所以,以下两行代码是等价的:

\\
\// 正常写法,函数是作为 sort 的参数\arr.sort({ $0 \u0026lt; $1 })\\// Trailing Closure 写法,更简洁明了\arr.sort { $0 \u0026lt; $1 } \
\\

常见用法示例

\\

高阶函数在 Swift 语言中有大量的使用场景,我们先来看一看常见的用法:

\\

遍历

\\

我们可以用 map 方法来对数组元素进行某种规则的转换,例如:

\\
\let arr = [1, 2, 4]\// arr = [1, 2, 4]\\let brr = arr.map {\    \"No.\" + String($0)\}\// brr = [\"No.1\
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值