前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Swift 基础之断言

Swift 基础之断言

作者头像
Swift社区
发布2021-11-26 11:04:04
5430
发布2021-11-26 11:04:04
举报
文章被收录于专栏:Swift社区

上篇文章谈到了可选,可选可以让你判断值是否存在,你可以在代码中优雅地处理值缺失的情况。然而,在某些情况下,如果值缺失或者值并不满足特定的条件,你的代码可能并不需要继续执行。这 时,你可以在你的代码中触发一个断言(assertion)来结束代码运行并通过调试来找到值 缺失的原因。

一:使用断言进行调试

断言会在运行时判断一个逻辑条件是否为 true。从字面意思来说,断言“断言”一个条件是否为真。你可以使用断言来保证在运行其他代码之前,某些重要的条件已经被满足。如果 条件判断为 true,代码运行会继续进行;如果条件判断为 false,代码运行停止,你的应用 被终止。

如果你的代码在调试环境下触发了一个断言,比如你在 Xcode 中构建并运行一个应用, 你可以清楚地看到不合法的状态发生在哪里并检查断言被触发时你的应用的状态。此外, 断言允许你附加一条调试信息。

你可以使用全局 assert 函数来写一个断言。向 assert 函数传入一个结果为 true 或者 false 的表达式以及一条信息,当表达式为 false 的时候这条信息会被显示:

代码语言:javascript
复制
let age = -3
assert(age >= 0, "A person is age cannot be less than zero")
// 因为 age < 0, 所以断言会触发

在这个例子中,只有 age >= 0 为 true 的时候代码运行才会继续,也就是说,当 age 的值 非负的时候。如果 age 的值是负数,就像代码中那样,age >= 0 为 false,断言被触发, 结束应用。

断言信息不能使用字符串插值。断言信息可以省略,就像这样:

代码语言:javascript
复制
assert( age > = 0)

二:何时使用断言

当条件可能为假时使用断言,但是最终一定要保证条件为真,这样你的代码才能继续运行。断言的适用情景:

  • 整数的附属脚本索引被传入一个自定义附属脚本实现,但是下标索引值可能太小或者太大。
  • 需要给函数传入一个值,但是非法的值可能导致函数不能正常执行。
  • 一个可选值现在是 nil,但是后面的代码运行需要一个非 nil 值。

注意:断言可能导致你的应用终止运行,所以你应当仔细设计你的代码来让非法条件不会出现。然而,在你的应用发布之前,有时候非法条件可能出现,这时使用断言可以快速发现问题。

系列文章阅读

Swift 基础之控制流

Swift 基础之常量和变量

Swift 基础之整数和浮点数

Swift 基础之类型

Swift 基础之布尔值和元组

Swift 基础之可选

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Swift社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档