我在我的一个项目中发现这个例子是一个失败的测试.为什么这样做:
[[1,2,3],[2,3,4],[1,1,nil]].sort #=> [[1,nil],4]]
但这不是:
[[1,[nil,nil]].sort #=> ERROR: ArgumentError: comparison of Array with Array Failed
经测试的Ruby版本:2.0.0,1.9.3.
解决方法
它是失败的,因为它是零的.第一个测试示例不会失败的原因是因为1,1的比较发生在1,2之间.由于不需要,因此不会进行无效验证.
以下示例失败,因为它最初必须过零.尝试在irb:
[1,nil,2].sort ArgumentError: comparison of Fixnum with nil Failed # in this example 1,2 comes before 2,1 so no need to continue in sort # and nil is never reached [ [2,5],6] ].sort => [[1,6],5]]