在Swift文档中,Apple说:
闭包是自包含的功能块,可以在代码中传递和使用.Swift中的闭包类似于C和Objective-C中的块以及其他编程语言中的lambdas.
我认为是第一类功能的定义
他们也这样说:
闭包可以从定义它们的上下文中捕获和存储对任何常量和变量的引用.这被称为关闭那些常量和变量.Swift为您处理捕获的所有内存管理.
我认为这是封闭的定义,而另一种缺陷是一流的功能,但Apple似乎把它们放在一起并称之为封闭.
我误解了什么吗?或者是Apple调用闭包和一流的函数闭包?
我已经编写了这个示例代码,并且想知道我是否在撰写评论中是对的?
// 'a' takes a first class function, which makes 'a' a higher order function
func a(ch: () -> Void){
print("Something")
ch() // 'ch' is a first class function
print("Ended")
}
func closureFunc(){
var num = 2
a({
// access to 'num' is possible by closures
num = num*2
print(num)
})
}
closureFunc()
Run Code Online (Sandbox Code Playgroud) 关于第一类函数的小知识是它支持传递函数作为参数,我们也可以将它们作为另一个函数中的值返回...我是Swift编程语言的新手,任何人都可以用一个例子来详细说明.
我尝试实现一个示例函数来返回一个函数。
JS 中的预期代码如下:
var class1 = function(val)
{
var val1 = val;
var obj = {
say: function(val)
{
console.log(val1 + ' ' + val);
}
};
return obj;
};
var obj1 = class1('hello');
obj1.say('ken');
obj1.say('tom');
Run Code Online (Sandbox Code Playgroud)
在 Swift 中,函数是一流的对象,但有点像在 JS 中那样难以编写。谢谢!