美文网首页
[swift 进阶]读书笔记-第四章:可选值 C4P4_强制解

[swift 进阶]读书笔记-第四章:可选值 C4P4_强制解

作者: liaoworkinn | 来源:发表于2018-12-25 12:46 被阅读0次

可选值

4.4强制解包的时机

几种强制解包的观点
1、绝不使用
2、代码逻辑更清晰的时候使用
3、不可避免的时候使用

我们通过特定的方法让可选值变成必选值,从而巧妙的避开强制解包。
可以先用filter去对序列进行排空处理,再通过map进行映射和排序。
如下面这个例子:

    let ages = ["liaoWorking":17,"wangzhuxian":16]
    ///有强制解包
    ages.keys.filter { name in ages[name]! < 50 }.sorted()
    ///巧妙的避开了强制解包
    ages.filter { (_, age) in age < 50 }
        .map { (name, _) in name }
        .sorted()
没怎么用过filter 和map的同学 先看一遍,再敲一遍,大概就知道其用途了。敲一遍还是很有用的🦆。

改进强制解包的错误信息


强制解包引起的崩溃,无法从输出中获得崩溃的原因。

书中介绍了@autoclosure注解 后面我们会对其用法专门讲解。 这里先说一句是 需要的时候去执行操作符右侧的语句。

在调试版本中进行断言


我们只会在开发版本中进行断言(assert),发布版本就算了。
书中主要讲了利用断言进行调试

assert(Bool, "error here")   ///其中Bool为false时执行断言“error here”

注:断言assert 是仅在Debug 版本起作用

文章源文件地址

相关文章

网友评论

      本文标题:[swift 进阶]读书笔记-第四章:可选值 C4P4_强制解

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