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

ruby – 如何测试秩序意识的哈希平等

发布时间:2020-12-17 03:54:55 所属栏目:百科 来源:网络整理
导读:Ruby 1.9.2将顺序引入哈希.考虑到顺序,我如何测试两个哈希值是否相等? 鉴于: h1 = {"a"=1,"b"=2,"c"=3}h2 = {"a"=1,"c"=3,"b"=2} 我想要一个比较运算符,它为h1和h2返回false.以下两点都不起作用: h1 == h2 # = trueh1.eql? h2 # = true 解决方法 您可以比
Ruby 1.9.2将顺序引入哈希.考虑到顺序,我如何测试两个哈希值是否相等?

鉴于:

h1 = {"a"=>1,"b"=>2,"c"=>3}
h2 = {"a"=>1,"c"=>3,"b"=>2}

我想要一个比较运算符,它为h1和h2返回false.以下两点都不起作用:

h1 == h2 # => true
h1.eql? h2 # => true

解决方法

您可以比较其键方法的输出:

h1 = {one: 1,two: 2,three: 3} # => {:one=>1,:two=>2,:three=>3}
h2 = {three: 3,one: 1,two: 2} # => {:three=>3,:one=>1,:two=>2}
h1 == h2 # => true
h1.keys # => [:one,:two,:three]
h2.keys # => [:three,:one,:two]
h1.keys.sort == h2.keys.sort # => true
h1.keys == h2.keys # => false

但是,根据键插入顺序比较Hashes有点奇怪.根据您的具体操作,您可能需要重新考虑基础数据结构.

(编辑:李大同)

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

    推荐文章
      热点阅读