【发布时间】:2012-06-13 08:28:41
【问题描述】:
在 Ruby 1.9 中,Hash 是根据插入顺序进行排序的。 为什么 Ruby koans 对 test_hash_is_unordered 方法的断言返回 true?
对我来说,该方法的标题非常具有误导性......也许它指的是 Ruby 将识别使用不同键顺序插入创建的 2 个相等的哈希。
但是,理论上,这种断言:
hash1 = { :one => "uno", :two => "dos" }
hash2 = { :two => "dos", :one => "uno" }
assert_equal ___, hash1 == hash2
应该返回假。还是不行?
【问题讨论】:
-
顺序是保留,但在测试等价时它是“无序的”(即顺序无关紧要)。