@autoclosure
&它是如何使用的?我已经做了大量的搜索,试图找出Swift中的@autoclosure
,我空手而归。任何人都可以告诉我它是什么,它做了什么,以及为什么/何时需要/应该使用它?
@autoclosure
属性的使用是接受一个函数的输入,否则需要使用闭包来输入参数,以允许输入用任何大括号输入正常参数。
示例(贷记给@Avi):
func doSomething(_ something: @autoclosure () -> ()) {
something()
}
doSomething(print(5))
// Prints "5"
注意: @autoclosure
属性的存在允许缺少花括号 print(5)
。
答案 0 :(得分:4)
该属性用于函数参数,该参数是闭包类型。当存在时,它允许调用者传递一个表达式,该表达式自动包装在一个闭包中并作为闭包传递给该函数。
func doSomething(_ something: @autoclosure () -> ()) {
something()
}
doSomething(print(5))
请注意print(5)
周围没有大括号。