当我使用“in”契约覆盖D中的函数时,将检查继承的“in”契约。如果它们失败,则检查重写的“in”合同。如果我没有在合同中指定任何内容,那么它就会被解释为有一个空的“in”合同。所以下面的代码编译并成功运行。 module main;
import std.stdio;
interface I
{
void write(int i)
in
{
as
我想在一个web应用程序中使用PyContracts,所以我有很多自定义类被传递,我只是想与其他更传统的参数类型一起检查。为了清洁和强制文档,我想使用合同编程(PyContracts)来完成此任务。 当我通过名称引用本地可见的类时,PyContracts似乎没有意识到该类型。例如: from contracts import contract
class SomeClass:
pas
我想减少Java中冗余和冗长的空检查,但我知道Java没有标准的@NotNull注释,因为c#具有可以使用的合约,例如 Contract.Requires(x != null);
我可能会错过一些东西,但是我不能自己编码吗? public class Contract {
public static void requireNotNull(Object object) {
一个JML后置条件的一类方法可以包含调用另一个方法调用 例如,我有这个类: public class A
{
public int doA(x)
{ ... }
public int doB(int x, int y)
{ ... }
}
对于DOB的后置条件,我可以有:ensures doA(x) = doA(y)?