Swift-闭包
尾随闭包
官方定义:如果需要将闭包表达式作为函数的最终参数传递给函数,并且闭包表达式很长,则可以将其写为尾随闭包。写法:尾随闭包写在函数调用的圆括号之后,即使它是函数的最终参数。如果尾随闭包作为函数的最终参数,并且定义了相应的参数标签,在使用尾随闭包语法时,不能将闭包的参数标签写为函数调用的一部分。
实际需求中需要的将尾随闭包变成可选,也就是根据参数来判断是否需要执行。
虽然没有用 @escaping 关键词,但是因为是可选值所以就成了逃逸闭包
1 |
|
因为使用的可选值闭包,所以无法同时满足 可选值和非逃逸
- 可以通过提供一个默认值避免可选值
- 或者通过重载函数,同时提供一个包含可选值逃逸的函数,和一个不是可选值非逃逸的函数
1 |
|
当使用 nil(或一个可选值)参数时,会调用逃逸闭包的函数
使用闭包字面量会调用非可选值的函数
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!