D Language
contratti
Ricerca…
Osservazioni
Le asserzioni verranno ottimizzate in una build di rilascio.
Contratti di funzione
I contratti di funzione consentono al programmatore di verificare la presenza di incoerenze. Le incoerenze includono parametri non validi, i controlli per il valore di ritorno corretto o uno stato non valido dell'oggetto.
I controlli possono avvenire prima e dopo l'esecuzione del corpo della funzione o del metodo.
void printNotGreaterThan42(uint number)
in {
assert(number < 42);
}
body {
import std.stdio : writeln;
writeln(number);
}
Le asserzioni verranno ottimizzate in una build di rilascio.
Contratti di funzione
Ad esempio, se viene invocato un metodo, lo stato dell'oggetto potrebbe non consentire che un metodo venga chiamato con parametri specifici o non lo sia affatto.
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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow