第六章:函数(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 总结
这一章很重。慢慢消化~
网友评论