xcode

Swift 的不安全

流过昼夜 提交于 2020-10-28 00:04:39
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 作者:Venkman,iOS 开发者,现就职于字节跳动飞书团队 Session: https://developer.apple.com/videos/play/wwdc2020/10648/ 这篇将会讨论下 Swift 中不安全的 API。 标准库中提供了许多不同的结构,类型,协议,功能,属性等,其中少量被明确标记为不安全。 我们没办法从接口名字上直接知道安全类型和不安全类型具体的区别是什么。实际上他们的区别在于对待无效输入时的处理实现。标准库中的大多数操作在执行之前都会完全验证其输入,因此我们可以放心地假定,我们可能犯的任何严重编码错误都将可靠地捕获并报告。 “安全”和“不安全“的定义 这里有一个强制展开 Optional 类型的例子: 我们知道 value 一定不能是 nil,如果我们将 value 赋值为 nil,然后使用强解操作符,我们的程序会马上 crash。虽然尝试强制展开 nil 值仍然是严重的编程错误,但是因为其后果已得到很好的定义。所以我们可以说强解这个操作是“安全的”,因为我们可以很清楚的知道对于各种输入会有什么表现形式。(包括强解 nil 会 crash)。 从广义上讲,不安全的操作指的是存在于某些输入