编程中的断言与容器详解
1. 断言的基本概念
在编程里,程序的每个点通常都存在对计算状态的约束,只有满足这些约束,程序才能正确运行。比如,若某个变量用于记录文件的更改次数,那么这个变量的值绝不能为负数。让人类读者了解这些约束是很有帮助的。而且,如果程序在执行过程中对这些约束进行检查,就有可能在错误刚出现时就发现它们。基于这两个原因,建议在断言中记录关于程序状态的约束。
断言指的是在程序指定点必须为真的语句。
2. 断言的类型
断言主要有以下几种类型:
- 前置条件(Preconditions) :在操作开始时必须为真的断言。例如,平方根操作不能接受负数参数,所以该操作的前置条件就是其参数为非负数。前置条件大多是对参数的限制,不过也可能规定其他条件已被满足,像文件已创建或者设备已初始化等。很多操作没有前置条件,这意味着它们可以在任何情况下执行。
- 后置条件(Post conditions) :在操作完成时必须为真的断言。例如,平方根操作的后置条件是其结果的平方与参数的差值在一个很小的范围内。后置条件通常规定了参数和结果之间的关系,或者对结果的限制。有时它们会说明参数是否改变,以及如何改变。最后,后置条件还可以规定当前置条件被违反时会发生什么(比如抛出异常)。
- 类不变式(Class invariants) :对于类的任何实例,在调用其导出操作之前和之后都必须为真的断言。通常,类不变式规定了类中属性的性质以及属性之间的关系。例如,假设 Bin 类用于模拟存放离散物品(如苹果或钉子)的容
超级会员免费看
订阅专栏 解锁全文
778

被折叠的 条评论
为什么被折叠?



