小编Cos*_*llo的帖子

Autoclosure接受参数但不返回值

根据Swift博士的说法,autoclosure的功能表明了这一点

autoclosure是一个自动创建的闭包,用于包装作为参数传递给函数的表达式.它不接受任何参数,当它被调用时,它返回包含在其中的表达式的值.

但是当我创建一个需要autoclosure的函数时

func test(_ clsr:@autoclosure(String)->(String)){
   let res = clsr("Hello World")
   print(res)
}
test("Good Morning")
Run Code Online (Sandbox Code Playgroud)

即使语法有效,我也可以传递值,我不能在语句中使用String值.那么,这件事是不是很快就会丢失.也许它应该在定义参数时显示一些错误警告.

或者我错过了关于autoclosures的事情?

closures swift

6
推荐指数
1
解决办法
414
查看次数

标签 统计

closures ×1

swift ×1