Hashのfindには何が渡されてくるのか?
RubyのHashはEnumerableをMixinしてるのだけど、Enumerable#findのブロックに渡される引数は1つ、となっているわけだ。Hashならキーと値を持つのに何で1つ?Hash#eachは2つじゃん!とかひそかに疑問に思っていたのだけど、今日解決しました。
{ :a=>"aa", :b=>"bb", :c=>"cc" }.find {|item| p item }
実行結果です。
[:b, "bb"] [:c, "cc"] [:a, "aa"]
なるほど、配列で渡されてくるわけね。納得。