A volte ho una funzione che dovrebbe restituire vero o falso. Ma a volte tre possibili valori avrebbero più senso.
In alcune lingue questi casi verrebbero gestiti con numeri interi o con eccezioni.
Ad esempio, vuoi gestire l'età di un utente se ha più di 18 anni. E hai una funzione come questa.
if(user.isAdult(country_code)){
//Go On
}else{
// Block access or do nothing
}
Ma in alcuni casi, a seconda di come è costruita l'app, potrei vedere il caso in cui il campo del compleanno è incompleto. Quindi questa funzione dovrebbe restituire qualcosa di indeterminato.
switch(user.isAdult()){
case true:
// go on
break;
case undetermined:
//Inform user birthday is incomplete
case false:
//Block access
}
Come ho detto, possiamo gestirlo con Exceptions e Int, ma troverei piuttosto sexy avere un vero, falso, indeterminato incorporato nella lingua invece di usare alcune costanti definite in casa.