Parfois, j'ai une fonction qui devrait retourner vrai ou faux. Mais parfois, trois valeurs possibles auraient plus de sens.
Dans certains langages, ces cas seraient traités avec des nombres entiers ou avec des exceptions.
Par exemple, vous voulez gérer l'âge d'un utilisateur s'il a plus de 18 ans. Et vous avez une fonction comme celle-ci.
if(user.isAdult(country_code)){
//Go On
}else{
// Block access or do nothing
}
Mais dans certains cas, selon la façon dont votre application est créée, je pouvais voir le cas où le champ d'anniversaire était incomplet. Ensuite, cette fonction devrait renvoyer quelque chose d'indéterminé.
switch(user.isAdult()){
case true:
// go on
break;
case undetermined:
//Inform user birthday is incomplete
case false:
//Block access
}
Comme je l'ai dit, nous pouvons gérer cela avec Exceptions et Int, mais je trouverais assez sexy d'avoir un vrai, faux, indéterminé intégré dans la langue au lieu d'utiliser des constantes définies à la maison.