【发布时间】:2013-09-30 10:42:39
【问题描述】:
我在生产服务器上使用 ruby 1.8.7,我的哈希在分配给变量时会自动排序。在本地机器上它工作正常。
这是从我的生产控制台获取的输出
>> a = {"b" => "a", "a" => "c"}
=> {"a"=>"c", "b"=>"a"}
>> a
=> {"a"=>"c", "b"=>"a"}
>>
有什么想法吗?如何避免哈希排序?
谢谢
【问题讨论】:
-
事实上哈希默认是不排序的,而是按照Ruby 1.8.7最方便的顺序进行迭代。这种行为在 1.9+ 中发生了变化,它按照插入哈希的顺序迭代键。您无法更改此设置,但可以在重要的地方解决它(前提是您的要求不只是使用插入顺序,而只是使用明确定义的顺序)