Иногда у меня есть функция, которая должна возвращать true или false. Но иногда три возможных значения имеют больше смысла.
В некоторых языках тезисы будут обрабатываться с целыми числами или с исключениями.
Например, вы хотите указать возраст пользователя, если ему больше 18 лет. И у вас есть такая функция.
if(user.isAdult(country_code)){
//Go On
}else{
// Block access or do nothing
}
Но в некоторых случаях, в зависимости от того, как построено ваше приложение, я мог видеть случай, когда поле дня рождения является неполным. Тогда эта функция должна вернуть что-то неопределенное.
switch(user.isAdult()){
case true:
// go on
break;
case undetermined:
//Inform user birthday is incomplete
case false:
//Block access
}
Как я уже сказал, мы можем справиться с этим с помощью Exceptions и Int, но я считаю, что было бы довольно сексуально встраивать в язык истинные, ложные, неопределенные значения вместо использования некоторых определенных пользователем констант.