【发布时间】:2018-05-17 13:02:08
【问题描述】:
@autoclosure 是什么以及它是如何使用的?
Swift 4.1,Xcode 9.4
我进行了大量搜索,试图找出 Swift 中的 @autoclosure 是什么,但我空手而归。谁能告诉我它是什么,它做什么,为什么/什么时候需要/应该使用它?
更新
@autoclosure 属性的使用是获取函数的输入,否则该函数需要使用闭包来输入参数,以允许将该输入与任何大括号一起作为正常输入之一参数。
示例(感谢@Avi):
func doSomething(_ something: @autoclosure () -> ()) {
something()
}
doSomething(print(5))
// Prints "5"
注意:@autoclosure属性的存在允许在print(5) 周围没有花括号案例。
【问题讨论】:
-
该文档有一个完整的部分专门用于autoclosures,所以我真的不觉得你说你做了相当多的研究是合理的。其他地方也有大量关于自动关闭装置的材料,所以如果你不得不问这样一个关于它们的一般性问题,那只能意味着你并没有真正研究过它们。
-
有没有人知道一个全面的地方,在那里我可以了解 Swift 的所有鲜为人知的(至少对我而言)属性?
标签: swift attributes closures keyword