加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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]]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读