Czasami mam funkcję, która powinna zwracać wartość prawda lub fałsz. Ale czasami trzy możliwe wartości miałyby większy sens.
W niektórych tezach językowych przypadki byłyby obsługiwane za pomocą liczb całkowitych lub wyjątków.
Na przykład chcesz poradzić sobie z wiekiem użytkownika, który ma ponad 18 lat. I masz taką funkcję.
if(user.isAdult(country_code)){
//Go On
}else{
// Block access or do nothing
}
Ale w niektórych przypadkach, w zależności od budowy aplikacji, mogłem zobaczyć przypadek, w którym pole urodzin jest niepełne. Wtedy ta funkcja powinna zwrócić coś nieokreślonego.
switch(user.isAdult()){
case true:
// go on
break;
case undetermined:
//Inform user birthday is incomplete
case false:
//Block access
}
Jak powiedziałem, możemy sobie z tym poradzić z Exceptions i Int, ale uważam, że to całkiem seksowne, aby mieć prawdziwe, fałszywe, nieokreślone osadzone w języku zamiast używać stałych zdefiniowanych w domu.