合同程式設計

你可以使用 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;
}

你可以擁有儘可能多的 requiresensures