D Language
контракты
Поиск…
замечания
Утверждения будут оптимизированы в сборке релизов.
Контракты функций
Функциональные контракты позволяют программисту проверять несоответствия. Несоответствия включают недопустимые параметры, проверку правильности возвращаемого значения или недопустимое состояние объекта.
Проверки могут происходить до и после того, как выполняется тело функции или метода.
void printNotGreaterThan42(uint number)
in {
assert(number < 42);
}
body {
import std.stdio : writeln;
writeln(number);
}
Утверждения будут оптимизированы в сборке релизов.
Контракты функций
Например, если метод вызывается, состояние объекта может не допускать, чтобы метод вызывался с определенными параметрами или вообще не был.
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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow