具有空值的情况下有用
答
在支持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);
答
具有空就好有一个未使用的变量。确定拥有它真的很棒,但它不是很有用。你可以分配一个值,但不会被闲置。如果你处理它,有一个null并不是一件坏事。所以这不是很糟糕,但它没有用。
什么时候是件好事?那么我想,值没有设置的知识是有用的,因此很好。
有些人使用null来表示另一个值。例如null表示与零或非零数字不同的东西。我个人尽可能避免分配null。对我来说,null的唯一含义是未使用/未分配。它没有任何进一步的宇宙目的,因此不可能是好的/坏的。只有用/无用。或者,如果未处理,它可能会导致错误,当然如果没有预料到的话,错误是不好的。
在我看来,真正的问题在于我们为什么没有空值。但这有点像问你为什么有空篮子。你必须填写它才有用。但是在你制作(或拿到)篮子之前,你无法填充它。所以我想我们会有空位......直到我们分配一个值。得处理它。
您可以通过分配默认值来避免空值。对于字符串或数字来说这非常棒,但有时候您可能想知道该值是否已被主动设置。
你只想要正面?这对我来说似乎是一种无效的运动。 –
这是不知何故与“0号”有用的情况有关? – gian1200
“好用”是一个矛盾。 null的含义未使用/未分配。因此,搞清楚它的好坏是不成熟的。它只是未使用。处理它! –