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

本文探讨了Swift中处理可选值的多种方法,包括避免强制解包的策略,使用filter和map函数优化代码,以及如何改进强制解包时的错误信息。文中还介绍了断言在调试中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可选值

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 版本起作用

文章源文件地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值