停业:通过比较和推理得出清晰性–巴拉特·纳丹帕利–中等

闭包:通过比较和推理清晰明了…

对于大多数主要的编程语言,闭包已经成为一流的公民。
这是尝试比较不同编程语言中的相似之处。

我们正在使用C,C ++,目标C和Swift编程语言。 在闭包的声明,定义和用法方面查看它们之间的相似之处。

宣言:

大多数闭包语法都源自“ C”中好的旧函数指针

  “C” : 
returnType(* funcPointerName)(参数)
 C ++ :( lambda函数) 

[ 捕获 ] ( params ) throw() -> ret { body }
 objective-c: 

returnType(^ blockName)(参数)
  迅速: 
{[捕获列表](参数)->返回类型
陈述
}

定义/用途:

实际上,在进行项目时,我们可以有一条规则 ,即@ 转义的任何闭包都必须在其捕获列表中包含[弱自我]
注意:-所有以闭包为参数的函数默认情况下均为非转义。 因此,如果您确定在函数返回之前将要调用闭包,则无需使用[弱自我]。

我想在下一篇文章中介绍一个主题。 @转义真的有什么帮助? 就内存管理(又名ARC)而言,编译器优化是什么?

参考文献

24.3函数指针和原型
通常,每次调用函数时在作用域中都有函数原型是一个好主意。 功能原型…… www.eskimo.com Swift.org
Swift是一种通用的编程语言,使用安全性,性能和软件的现代方法构建而成…… swift.org bharathns / MyExperiments
MyExperiments – c ++,swift,ios github.com