闭包

闭包是自包含的函数代码块,可以在代码中被传递和使用。

Swift 中的闭包与 C 和 Objective-C 中的 代码块(Block) 以及其他一些编程语言中的 匿名函数(Lambda) 比较相似。

闭包可以捕获和存储其所在上下文中任意常量和变量的引用。被称为包裹常量和变量

Swift 会为你管理在捕获过程中涉及到的所有内存操作。

闭包采用如下三种形式之一:

  • 全局函数是一个有名字但不会捕获任何值的闭包

  • 嵌套函数是一个有名字并可以捕获其封闭函数域内值的闭包

  • 闭包表达式是一个利用轻量级语法所写的可以捕获其上下文中变量或常量值的匿名闭包


最后更新于