D Language
Kontrakty
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