Rubyリファレンス: Home

each, each_pair (Hash)

Edit   History

標準クラス・モジュール > Hash > each, each_pair

hash.each {|key, val| block }
hash.each_pair {|key, val| block }

eachメソッドは、ハッシュの要素(キーと値)の数だけブロックを繰り返し実行します。繰り返しごとにブロック引数にはキーkeyと値valが入ります。each_pairメソッドは、eachの別名です。

戻り値はレシーバ自身です。Ruby 1.8.7と1.9では、ブロックを省略するとEnumeratorオブジェクトを返します。

scores = { "Alice" => 50, "Bob" => 60, "Carol" => 90, "David" => 40 }
scores.each {|name, score| puts "#{name}\t#{score}" }
Alice   50
David   40
Carol   90
Bob     60

Ruby 1.9のハッシュは順序を保持するので、ハッシュのリテラルで並べた順にブロックにキーと値が渡されます。each_keyeach_valueも同様です。上記の例の結果は次のようになります。

Alice   50
Bob     60
Carol   90
David   40

関連項目