第九节 断言(Assertions)

 

本文来自于疯子们的开源图书

 

可选使得你能够检查值存在或者不存在,这使得你能够很优雅的处理值缺失的情况。在某些情况下, 如果某个变量的值不存在的话,亦或者提供的值不能满足某个条件的时候,你就不能简简单单的让你的代码继续执行了。在这些情况下,你可以在代码中触发一个断言,这样你就有机会调试一下代码,看看什么原因导致值是缺失的或者是无效的。

使用断言进行调试

断言其实就是一个运行时的检查机制,判断一下逻辑条件是不是为true.字面上的意思就是,一个断言断定条件是true.通过声明一个断言来确保某个必要的条件是满足的,以便继续执行接下来的代码。如果条件满足了,那么代码像往常一样执行,如果不满足了,代码就停止执行了,应用也随之停下来了。

在某些调试环境下,比方说在Xcode当中构建,运行一个应用的时候,如果你的代码触发了断言的话,你就可以准确的知道应用在哪里出了问题,看看触发断言时,应用当时的状态是怎样。在断言当中也可以提供一个适当的调试信息,就像断言这个词本身的含义一样。

可以使用全局函数assert来声明一个断言。向assert函数传递一个条件表达式,如果表达式为false,可以打印一段信息。

第九节 断言(Assertions)

在这个例子当中,当且仅当age >= 0true的时候,也就是age为非负的情况下,代码才会继续执行。如果age为负的情况,就像上面一样,那么age >= 0就是false,断言就会被触发,应用终止。

断言信息中再不能包括字符串操作了。断言信息也可以省略,就像下面这样:

什么时候使用断言

在条件有可能为false的情况,当然也必须能够为true以便于代码可以继续执行的时候,使用断言。可以在下面这些适当的情况中使用断言:

  • 自定义整型下标的时候,下标表达式的值有可能太大或者太小

  • 向函数传值的时候,一个无效值意味着函数不能完成相应的任务

  • 一个可选目前为nil,但是必须要有一个非nil值以便接下来的代码可以成功的执行

参考下标函数一章

注意:

断言可以引发程序终止,但是并不是被设计用来避免不在发生无效情况的。不过,在那些无效条件有可能触发的情况下,断言是一种 有效的手段,可以确保在应用发布之前,在开发过程中就可以关注这些条件。


你可能感兴趣的:(swift)