功能合同

例如,如果呼叫方法,則物件的狀態可能不允許使用特定引數呼叫方法或根本不呼叫方法。

class OlderThanEighteen {
    uint age;

    final void driveCar()
    in {
         assert(age >= 18); // variable must be in range
    }
    body {
         // step on the gas
    }
}