Я часто задавался вопросом, почему языки с null
, представляющие "нет значения", не делают различий между пассивным "Я не знаю, что такое значение" и более напористым "Нет значения".
Было несколько случаев, когда мне хотелось бы провести различие между ними (особенно при работе с пользовательскими вводами и базами данных).
Я представляю себе следующее, где мы называем два состояния unknown
и null
:
var apple;
while (apple is unknown)
{
askForApple();
}
if (apple is null)
{
sulk();
}
else
{
eatApple(apple);
}
Очевидно, что мы можем уйти без него, вручную сохраняя состояние somwhere else, но мы можем сделать это и для нулей.
Итак, если мы можем иметь один null
, почему мы не можем иметь два?