¿Por qué no tenemos dos valores nulos?
A menudo me he preguntado por qué los idiomas con unanull
representando"sin valor" no distingas entre el pasivo "No sé cuál es el valor" y el más asertivo "No hay valor"..
Ha habido varios casos en los que me hubiera gustado diferenciar entre los dos (especialmente cuando se trabaja con datos de entrada de usuarios y bases de datos).
Imagino lo siguiente, donde nombramos los dos estadosunknown
ynull
:
var apple;
while (apple is unknown)
{
askForApple();
}
if (apple is null)
{
sulk();
}
else
{
eatApple(apple);
}
Obviamente, podemos escapar sin almacenar manualmente el estado en otro lugar, pero también podemos hacer eso para nulos.
Entonces, si podemos tener unanull
, ¿por qué no podemos tener dos?