Поиск…


замечания

Утверждения будут оптимизированы в сборке релизов.

Контракты функций

Функциональные контракты позволяют программисту проверять несоответствия. Несоответствия включают недопустимые параметры, проверку правильности возвращаемого значения или недопустимое состояние объекта.

Проверки могут происходить до и после того, как выполняется тело функции или метода.

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