2012-11-23 22 views
7

爲什麼Groovy中的以下內容是真實的?在Groovy中比較空和數字

0 > null 

這是由選擇還是僅僅是執行compareTo的結果?

我正在使用Groovy 2.0.5。

+0

BCZ在Groovy NULL是0 –

+0

如果NULL爲0,那麼它將是假的,對吧? – Simon

+0

我還不清楚...... tim_yates先生回答 –

回答

10

在Groovy null可能是最低的元素,所以一切都是> null

assert     'tim' > null 
assert      0 > null 
assert      -1 > null 
assert Double.NEGATIVE_INFINITY > null 

這意味着這樣的事情可以工作:

[ 1, null, 3 ].sort() 

否則會發生什麼?如果你想要這個工作,你不得不說「空比什麼都低」「空比什麼都高」 ...

Groovy中選擇了前者

+0

不是更好,如果null總是假的? null <0 == false null> 0 == false null == 0 == false? –

+0

@Fabiano:蒂姆已經在他的回答中提到了這一點。使用'永遠虛假'不會給你一致的排序。 –