수색…


비고

어설 션은 릴리스 빌드에서 최적화됩니다.

기능 계약

기능 계약을 통해 프로그래머는 불일치를 확인할 수 있습니다. 불일치에는 잘못된 매개 변수, 올바른 반환 값 확인 또는 개체의 잘못된 상태가 포함됩니다.

검사는 함수 또는 메소드의 본문이 실행되기 전과 후에 발생할 수 있습니다.

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