Szukaj…


Uwagi

Asercje zostaną zoptymalizowane w kompilacji wersji.

Umowy funkcji

Kontrakty funkcyjne pozwalają programistowi sprawdzać niespójności. Niespójności obejmują niepoprawne parametry, sprawdzanie poprawnej wartości zwracanej lub niepoprawny stan obiektu.

Kontrole mogą się odbywać przed i po wykonaniu treści funkcji lub metody.

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

Asercje zostaną zoptymalizowane w kompilacji wersji.

Umowy funkcji

Na przykład, jeśli wywoływana jest metoda, stan obiektu może nie pozwolić na wywołanie metody z określonymi parametrami lub wcale.

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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow