【发布时间】:2009-02-25 09:00:09
【问题描述】:
我经常想知道为什么用null 表示“没有价值”的语言不区分被动“我不知道价值是什么” em> 和更自信的“没有价值。”。
在某些情况下,我希望区分这两者(尤其是在使用用户输入和数据库时)。
我想象如下,我们将两个状态命名为 unknown 和 null:
var apple;
while (apple is unknown)
{
askForApple();
}
if (apple is null)
{
sulk();
}
else
{
eatApple(apple);
}
显然,我们可以通过手动将状态存储在其他地方 but we can do that for nulls too 来摆脱它。
那么,如果我们可以有一个null,为什么我们不能有两个?
【问题讨论】:
-
你真的是在谈论两个空值还是一个
null和一个不确定的状态?请澄清。 -
你如何定义'null'?我说的是“没有价值”的价值观。
-
我认为它可以与一个可以返回null但也可以抛出(“未知”)的函数进行比较。
标签: programming-languages null