快速了解自动闭合

在本文中,我们将探索Swift的一个非常简单但非常有趣且有用的功能,称为Autoclosures。 如果您不熟悉此概念,那么前几个问题可能是:那是什么? 和“正常”关闭有什么不同?

好吧,让我们从Swift.org语言指南中的定义开始

自动闭包是一种自动创建的闭包,用于包装将作为参数传递给函数的表达式。 它不带任何参数,并且在调用它时,它返回包装在其中的表达式的值。 这种语法上的便利性使您可以通过编写正则表达式而不是显式闭包来省略函数参数的花括号。

所以……基本上,自动闭包是封装表达式并返回该表达式的结果值的闭包。 如果您定义一个以自动闭包为参数的函数,例如,定义一个函数func f(_ x:@autoclosure()-> Int),则基本上可以使用与普通函数相同的语法调用该函数。像f(3)这样的Int类型,编译器确保将其包装在闭包内。 因此,对于调用方而言,它变化不大。 但是自动关闭的最大优点是它们使我们可以延迟表达式求值,因为该表达式仅在函数调用关闭之后才运行。

表达式的计算成本很高并且不能在函数内部使用时,可以很好地使用它。

说了这么多,让我们来看一个代码示例

这就是本文的全部,希望您喜欢🙂

如果您有任何意见或疑问,请告诉我。 我很高兴收到您的反馈feedback

您可以在Twitter上@ LucianoPassos11找到我。

感谢您阅读🙂

参考文献

  1. Swift编程语言(Swift 4.2):语言指南:闭包。 https://docs.swift.org/swift-book/LanguageGuide/Closures.html