Posted on 

断言与先决条件

断言

断言和先决条件在运行时检查后续代码某个必要条件是否被满足,举个简单的例子,人的年龄一定大于等于0岁,于是:

1
2
3
let age = -1
assert(age >= 0, “invalid age”)
// 触发断言

当然,上述invalid age只是提示信息,assert更重要的作用是终止代码的执行,提示信息可以省略。

断言也可以“已经被完成”——如果代码已经检查了条件(比如已经确定age小于0),则可以用assertionFailure(_:file:line:)函数来表明断言失败。

先决条件

先决条件和断言类似,但可以用于生产环境。可以使用全局 precondition(_:_:file:line:) 函数来写一个先决条件。