有一个真正的驱动器可以消除编程中的null,并且有许多null在语言中很糟糕的例子。 null的好用途及其对编程的一些好处。
答案 0 :(得分:1)
在支持null
的所有计算机语言中,它表示“未知”(或“未分配” - 类似)。区分“未知”和特定值可能很有用。这尤其适用于类型变量的所有可能值都是其含义的可能值。如果变量的含义范围有限,则可以为“未知”保留超出此范围的值。
例如在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);
答案 1 :(得分:1)
拥有null就像拥有一个未使用的变量。当然有它很棒,但它不是很有用。您可以分配一个值,但之后它不会被闲置。如果处理它,拥有null并不是一件坏事。所以它并不是很糟糕,但它并没有用。
什么时候好?好吧,我认为没有设置值的知识是有用的,因此很好。
有些人使用null来表示另一个值。例如null表示与零或非零数字不同的内容。就个人而言,我尽量避免分配null。对我来说,null的唯一含义是未使用/未分配。它没有任何进一步的宇宙目的,因此不能好/坏。只有用/无用。或者,如果未处理,可能会导致错误,当然,如果出现意外,错误也会很糟糕。
在我看来,这里真正的问题是为什么我们根本就有空值。但这有点像问你为什么有一个空篮子。你必须填写它才有用。但是,在你首先制作(或获得)篮子之前,你无法填补它。所以我想我们只会有空...直到我们分配一个值。要处理它。
您可以通过指定默认值来避免空值。这对字符串或数字很有用,尽管有时您可能想知道该值是否已被主动设置。