0

sort我通常使用下面示例中给出的非常著名的方法对 ruby​​ 哈希进行排序。但是当字符串键中有下划线时,这非常失败。例如:

h = {"b" => 1, "a" => 2}
Hash[h.sort]

完美地对哈希进行排序。但是当哈希类似于

h = {"b_d" => 1, "a_v" => 2}

我没有得到所需的排序顺序。这里要注意的一点是h.sort对哈希进行排序并生成一个Enumerable对象。但是当我使用 将对象转换回 Hash 时Hash[h.sort],它会丢失这里的顺序。任何有关更好流程的建议都可能会有所帮助。

注意:我正在使用Ruby 1.8.7,所以OrderedHash我的镜头中没有太多。

4

1 回答 1

2

在 Ruby 1.8.7 中,一旦您转换回 a Hash,您就必然会失去您的排序。你必须摆脱香草Hash才能让它发挥作用 - 也许尝试让Enumerable你远离sort并尽可能长时间地使用它?

于 2012-10-02T13:00:44.370 回答