合同编程
你可以使用 requires
声明参数具有特定值。
int fib (int i) requires (i > 0) {
if (i == 1) {
return i;
} else {
return fib (i - 1) + fib (i - 2);
}
}
fib (-1);
编译期间不会出现任何错误,但运行程序时会出错,但函数不会运行。
你还可以断言返回值与 ensures
匹配某个条件
int add (int a, int b) ensures (result >= a && result >= b) {
return a + b;
}
你可以拥有尽可能多的 requires
和 ensures
。