断言与先决条件
断言
断言和先决条件在运行时检查后续代码某个必要条件是否被满足,举个简单的例子,人的年龄一定大于等于0岁,于是:
1 | let age = -1 |
当然,上述invalid age
只是提示信息,assert
更重要的作用是终止代码的执行,提示信息可以省略。
断言也可以“已经被完成”——如果代码已经检查了条件(比如已经确定age小于0),则可以用assertionFailure(_:file:line:)
函数来表明断言失败。
先决条件
先决条件和断言类似,但可以用于生产环境。可以使用全局 precondition(_:_:file:line:)
函数来写一个先决条件。