Zoeken…


Opmerkingen

De beweringen worden geoptimaliseerd in een release-build.

Functiecontracten

Met functiecontracten kan de programer controleren op inconsistenties. Inconsistenties omvatten ongeldige parameters, controles op de juiste retourwaarde of een ongeldige status van het object.

De controles kunnen plaatsvinden vóór en nadat de body van de functie of methode is uitgevoerd.

void printNotGreaterThan42(uint number)
in {
    assert(number < 42);
}
body {
    import std.stdio : writeln;
    writeln(number);
}

De beweringen worden geoptimaliseerd in een release-build.

Functiecontracten

Als bijvoorbeeld een methode wordt aangeroepen, staat de status van het object mogelijk niet toe dat een methode met specifieke parameters wordt opgeroepen of helemaal niet.

class OlderThanEighteen {
    uint age;

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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow