今日使ったもの
Hash.each_pair {|key, value| ... }
http://www.ruby-lang.org/ja/man/html/Hash.html
each_pairはハッシュのkey と value を引数としてブロックを評価するメソッド。eachとの違いはブロックパラメータの受け渡し方。
{:a=>1, :b=>2}.each_pair {|k, v| p [k, v]}
# => [:a, 1]
[:b, 2]
ruby 1.8 feature:
each と each_pair ではブロックパラメータの受渡し方が異なります。
each: yield([key, val])
each_pair: yield(key, val)
このことにより、each_pair のブロックパラメータに一つの変数を指定した場合、以下のように警告が出ます。詳細は、 yield を参照してください。
{:a=>1, :b=>2}.each_pair {|a| p a }
# => -:1: warning: multiple values for a block parameter (2 for 1)
from -:1
[:a, 1]
-:1: warning: multiple values for a block parameter (2 for 1)
from -:1
[:b, 2]