2014-01-31 51 views
0

有一个真正的驱动程序可以消除编程中的空值,并且有很多空值在语言中不好的例子。 null对于编程有什么好处以及它的一些好处。具有空值的情况下有用

+0

你只想要正面?这对我来说似乎是一种无效的运动。 –

+0

这是不知何故与“0号”有用的情况有关? – gian1200

+0

“好用”是一个矛盾。 null的含义未使用/未分配。因此,搞清楚它的好坏是不成熟的。它只是未使用。处理它! –

回答

1

在支持null的所有计算机语言中,它表示“unknown”(或“unassigned” - 类似)。将“未知”与特定值区分开来可能很有用。这尤其适用于类型变量的所有可能值都是其含义的可能值的情况。如果变量的含义范围有限,则超出此范围的值可以保留为“未知”。

int age = -1; // people can't have a negative age, so safe to use -1 as unknown 
Integer hashCode = null; // hash can be any integer, so need to use null 

允许空值的缺点是在许多语言中,你需要处理的是::

在Java

在java中再次

boolean hasSameHash = hashCode != null && hashCode.equals(other.hashCode); 
1

具有空就好有一个未使用的变量。确定拥有它真的很棒,但它不是很有用。你可以分配一个值,但不会被闲置。如果你处理它,有一个null并不是一件坏事。所以这不是很糟糕,但它没有用。

什么时候是件好事?那么我想,值没有设置的知识是有用的,因此很好。

有些人使用null来表示另一个值。例如null表示与零或非零数字不同的东西。我个人尽可能避免分配null。对我来说,null的唯一含义是未使用/未分配。它没有任何进一步的宇宙目的,因此不可能是好的/坏的。只有用/无用。或者,如果未处理,它可能会导致错误,当然如果没有预料到的话,错误是不好的。

在我看来,真正的问题在于我们为什么没有空值。但这有点像问你为什么有空篮子。你必须填写它才有用。但是在你制作(或拿到)篮子之前,你无法填充它。所以我想我们会有空位......直到我们分配一个值。得处理它。

您可以通过分配默认值来避免空值。对于字符串或数字来说这非常棒,但有时候您可能想知道该值是否已被主动设置。