man*_*lds 11
首先,让我们从维基百科中的Closure定义开始:
在编程语言中,闭包(也是词法闭包或函数闭包)是函数的一个函数或引用,以及一个引用环境 - 一个存储对每个非局部变量(也称为自由变量或上值)的引用的表.那个功能.
闭包是用于引用函数及其"关闭"的环境变量的术语.
Swift中Closure的定义与其他语言(如C#和Ruby)中的lambda和块一致.
至于与函数的区别,来自Swift文档:
函数中引入的全局函数和嵌套函数实际上是闭包的特例
因此,所有函数本质上都是闭包,用于在其上下文中存储对变量的引用.
Closure expressions 是编写闭包的便捷方式,并提供更简洁的语法.
jem*_*ons 10
事实上,函数只是命名闭包.以下至少在概念上是等效的:
let foo = { println("hello") }
func foo()->(){ println("hello") }
Run Code Online (Sandbox Code Playgroud)
这样会稍微使用的情况下更复杂func申报方法,因为有糖的一些有趣的位加入关于公共命名参数的自动插入等func myMethod(foo:Int, bar:Int, baz:Int)成为func myMethod(foo:Int, #bar:Int, #baz:Int),例如.
但是,即使方法只是闭包的一个特例,它仍然是正确的,如果闭包也是如此,那么函数和方法也是如此.
| 归档时间: |
|
| 查看次数: |
7961 次 |
| 最近记录: |