一尘不染

函数和闭包之间有什么区别?

swift

我一直在阅读iBooks中的快速编程指南。有人可以向我解释函数和闭包之间的区别是什么。只是它没有名称并且可以在表达式中使用?


阅读 312

收藏
2020-07-07

共1个答案

一尘不染

函数实际上只是命名为闭包。以下至少在概念上是等效的:

let foo = { println("hello") }

func foo()->(){ println("hello") }

在使用func声明方法的情况下,这变得有些复杂,例如,关于自动插入公共命名参数等,添加了一些有趣的糖,例如,func myMethod(foo:Int, bar:Int, baz:Int)变为`func myMethod(foo:Int, #bar:Int,

baz:Int)`。

但是,即使方法只是闭包的一种特殊情况,也仍然是真的,如果闭包是正确的,那么函数和方法也是如此。

2020-07-07