A volte ho una funzione che dovrebbe restituire true o false. Ma a volte tre possibili valori avrebbero più senso.
In alcune lingue i casi sarebbero trattati con numeri interi o con eccezioni.
Per esempio, vuoi gestire l'età di un utente se ha più di 18 anni. E tu 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 la tua 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 embeded nella lingua invece di usare alcune costanti definite da casa.