美文网首页
[swift 进阶]读书笔记-第六章:函数 C6P6_7 自动

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

作者: liaoworkinn | 来源:发表于2019-01-26 14:38 被阅读4次

    第六章:函数(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 总结


    这一章很重。慢慢消化~

    文章源文件地址

    相关文章

      网友评论

          本文标题:[swift 进阶]读书笔记-第六章:函数 C6P6_7 自动

          本文链接:https://www.haomeiwen.com/subject/udsijqtx.html