有一个真正的驱动力来消除编程中的空,并且有很多示例,即无语言不良。NULL的良好用途及其对编程的一些好处。
在支持null
的所有计算机语言中,它的意思是"未知"(或"未分配" - 类似)。将"未知"与特定值区分开可能是有用的。这是尤其是使用类型变量的所有可能值是其含义的可能值。如果变量的含义范围有限,则可以为"未知"保留此范围之外的值。
eg in Java:
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
允许null的缺点是您需要处理的多种语言:
再次在Java中:
boolean hasSameHash = hashCode != null && hashCode.equals(other.hashCode);
具有空的变量就像没有未使用的变量。当然,拥有它是很棒的,但这不是很有用。您可以分配一个值,但不会未使用。如果您处理零是一件坏事。所以这并不是很糟糕,但没有用。
什么时候是一件好事?好吧,我想知道该值尚未设置的知识是有用的,因此很好。
有些人使用null代表另一个值。例如Null意味着与零或非零数字不同的东西。我个人避免在可能的情况下分配空。对我来说,无用的唯一含义是未使用/未分配的。它没有任何进一步的宇宙目的,因此不能是好/坏。只有有用/无用。或者,如果未接受的话,它可能会导致错误,并且如果不预期的话,当然是错误的。
在我看来,这里真正的问题是为什么我们根本没有空。但这有点像问你为什么要有一个空篮子。您必须填充它才能有用。但是,直到首先制作(或获取)篮子之前,您无法填充它。因此,我想我们只会有空...直到分配一个值。要处理它。
您可以通过分配默认值来避免零。对于字符串或数字来说,这很棒,尽管有时您可能想知道该值是否已积极设置。