Posted at

Hash#keysの順番は保証されるのか?

More than 5 years have passed since last update.

結論 : 1.9からは保証される

Hash(1.8.7)


ハッシュに含まれる要素の順序は保持されません。 列挙する順序は不定です。


Hash(1.9.3)


ハッシュに含まれる要素の順序が保持されるようになりました。 ハッシュにキーが追加された順序で列挙します。



hash.rb

v = {a:1, b:2, c:3, d:4}

p v.keys # => [:a, :b, :c, :d]
p v.values # => [1, 2, 3, 4]