Posted at

rubyのhashは順序を保存する

More than 5 years have passed since last update.

ruby-list MLを見ていたら「RubyのHashは順序を保存するので~」との一文が。

てっきり順不同だと思ってたので意外でしたが、試してみたらこんな感じ。

ちゃんと保存されてました。へーへーへー。


sample.rb

hash1 = {}

hash1[:key1] = :val1
hash1[:key2] = :val2
hash1[:key3] = :val3
p hash1 # {:key1=>:val1, :key2=>:val2, :key3=>:val3}

hash2 = {}
hash2[:key3] = :val3
hash2[:key2] = :val2
hash2[:key1] = :val1
p hash2 # {:key3=>:val3, :key2=>:val2, :key1=>:val1}

p hash1.keys # [:key1, :key2, :key3]
p hash2.keys # [:key3, :key2, :key1]

p hash1 == hash2 # true