2014-01-31 87 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的唯一含義是未使用/未分配。它沒有任何進一步的宇宙目的,因此不可能是好的/壞的。只有用/無用。或者,如果未處理,它可能會導致錯誤,當然如果沒有預料到的話,錯誤是不好的。

在我看來,真正的問題在於我們爲什麼沒有空值。但這有點像問你爲什麼有空籃子。你必須填寫它纔有用。但是在你製作(或拿到)籃子之前,你無法填充它。所以我想我們會有空位......直到我們分配一個值。得處理它。

您可以通過分配默認值來避免空值。對於字符串或數字來說這非常棒,但有時候您可能想知道該值是否已被主動設置。