2006-10-24
[Ruby] Symbol#to_proc を使ってみる
cars.each {|car| car.draw }
が次のように書ける。
cars.each &:draw
暗号っぽいけどどうかな。上記のようなケースで配列の全要素に対して任意のメソッドを適用する方法は前からほしかった。
今後はこの方法で書くと思う。今までなかったから違和感があるだけかも。最初は {|e| e... } だって記号に見えてなかなか理解できなかったわけだし。
今はこう唱えてるけど、将来は標準になる模様。
class Symbol def to_proc Proc.new { |obj, *args| obj.send(self, *args) } end end