Swift 闭包:全面解析与应用
1. 闭包概述
闭包是自包含的功能代码块,可在代码中传递和使用。在 Swift 里,闭包类似于 C 和 Objective - C 中的块,以及其他编程语言中的 lambda 表达式。闭包能够捕获并存储其定义上下文里的常量和变量的引用,这被称作对这些常量和变量的捕获。Swift 会自动处理捕获过程中的内存管理。
闭包主要有以下三种形式:
- 全局函数 :有名称且不捕获任何值的闭包。
- 嵌套函数 :有名称,可从其外部函数捕获值的闭包。
- 闭包表达式 :以轻量级语法编写的无名称闭包,能从周围上下文捕获值。
Swift 的闭包表达式风格简洁清晰,在常见场景下有诸多优化,包括:
- 从上下文推断参数和返回值类型。
- 单表达式闭包的隐式返回。
- 简写参数名。
- 尾随闭包语法。
2. 闭包表达式
当处理将函数作为参数的函数或方法时,有时需要编写无完整声明和名称的类函数构造的简短版本,闭包表达式就能以简洁、聚焦的语法编写内联闭包。下面通过 sorted(by:) 方法的例子来展示闭包表达式的优化。
2.1 sorted(by:) 方法
Swift 标准库中的 sorted(by:) 方法可根据提供的排序闭包对已知类型的数组进行排序,排序完成后返回一个新的、相同类型和大小的数组,原数组不会被修改。
超级会员免费看
订阅专栏 解锁全文
49

被折叠的 条评论
为什么被折叠?



