Manchmal habe ich eine Funktion, die wahr oder falsch zurückgeben sollte. Aber manchmal wären drei mögliche Werte sinnvoller.
In einigen Sprachen werden diese Fälle mit ganzen Zahlen oder mit Ausnahmen behandelt.
Zum Beispiel möchten Sie das Alter eines Benutzers behandeln, wenn er über 18 Jahre alt ist. Und Sie haben eine Funktion wie diese.
if(user.isAdult(country_code)){
//Go On
}else{
// Block access or do nothing
}
Aber in einigen Fällen, abhängig davon, wie Ihre App erstellt wurde, kann es vorkommen, dass das Geburtstagsfeld unvollständig ist. Dann sollte diese Funktion etwas Unbestimmtes zurückgeben.
switch(user.isAdult()){
case true:
// go on
break;
case undetermined:
//Inform user birthday is incomplete
case false:
//Block access
}
Wie gesagt, wir können das mit Exceptions und Int umgehen, aber ich finde es ziemlich sexy, ein wahres, falsches, unbestimmtes eingebettetes Element in der Sprache zu haben, anstatt einige selbst definierte Konstanten zu verwenden.