【发布时间】:2011-04-09 10:42:45
【问题描述】:
是否有任何语言可以声明global 断言——即在整个程序执行期间应该保持的断言。这样就可以编写如下内容:
global assert (-10 < speed < 10);
并且每次speed 更改状态时都会检查此断言?
【问题讨论】:
标签: validation assert verification assertions
是否有任何语言可以声明global 断言——即在整个程序执行期间应该保持的断言。这样就可以编写如下内容:
global assert (-10 < speed < 10);
并且每次speed 更改状态时都会检查此断言?
【问题讨论】:
标签: validation assert verification assertions
eiffel 支持所有不同的合同:前置条件、后置条件、不变量……您可能想要使用它。
另一方面,为什么你有一个全局变量?你为什么不创建一个修改速度的类。这样做,您可以在每次值更改时轻松检查您的状况。
【讨论】:
我不知道有任何语言真正做这样的事情,我怀疑是否存在任何语言,因为它是相当难以实现的东西,同时又不是什么东西很多人都需要。
通常最好简单地断言输入是有效的,并且仅在允许时以定义的、理智的方式进行修改。这就结束了对“全局断言”的需求。
您可以通过多种方式“通过后门”获得这种效果,但没有一种是真正优雅的,其中两种方式相当依赖于系统:
【讨论】: