[swift 进阶]读书笔记-第六章:函数 C6P6_7 自动闭包_总

第六章:函数(function)

6.6 自动闭包。


本节主要知识点: 对@autoclosure 和@escaping 标注的使用场景及用法进行了介绍。

知识点1:短路求值 :像&&||操作符中, 只要左边不符合条件或者符合条件就直接忽略(短路掉)右边的操作数。

///这里我们依赖了短路求值, 第一个操作数不符合要求时候直接不走对应的逻辑代码
let evens = [2, 4, 6]
if !evens.isEmpty && evens[0] > 10  {
        //do something
}

我们自己来手动写一个和&&效果相同的函数
[图片上传失败...(image-6beb79-1548484726231)]

这个时候你会发现你的方法调用完全不认识,怎么这么丑

此时此刻~ @autoclosure标注的作用就来了: 让你的参数自动封装成一个闭包。
现在我们的写法就变成了如下:
[图片上传失败...(image-c47662-1548484726231)]
清新脱俗,通俗易懂!

@escaping(逃逸闭包的标注) 标注


知识点1:闭包作为参数默认都是非逃逸闭包
注:一句话介绍@escaping的作用就是延长闭包作为参数时候的生命周期
注2: 一般在项目中网络请求的回调用作为闭包时 系统就会强制添加闭包参数加@escping标注。

相信swift开发者在项目中肯定用(被系统强制用)过@escaping标注。 这里就不赘述了。

6.7 总结


这一章很重。慢慢消化~

文章源文件地址

猜你喜欢

转载自blog.csdn.net/weixin_33924220/article/details/87116203