Ruby:排序可能包含nil的多维数组有时会失败
发布时间:2020-12-16 22:09:29 所属栏目:百科 来源:网络整理
导读:我在我的一个项目中发现这个例子是一个失败的测试.为什么这样做: [[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,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]] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |