83's

Top > Archives > 2006 > March > 10 > to_procすげー

to_procすげー

くまくまーさんのエントリにあったSymbol#to_procが 便利そう。

[1, 2, 3].collect{|i| i.to_s }
#=> ["1", "2", "3"]

と書いていたものが、

[1, 2, 3].collect(&:to_s)
#=> ["1", "2", "3"]

となる。いいねぇ。各要素にto_sを作用させるってのがより直接的に表現できてる感じがしないでもない。

引数を! シンボル渡して呼び出すメソッドに引数を渡したいです!!

こうかな?

class Array
  def to_proc
    Proc.new{|obj| obj.send(*self) }
  end
end

[1, 2, 3].collect(&[:+, 1])
#=> [2, 3, 4]

%w(Tokyo Nagoya Kyoto).select(&[:=~, /kyo/i])
#=> ["Tokyo", "Kyoto"]

each_with_indexみたいなときはどうしたらいいかな。

Trackbacks

Trackback Ping URL: http://fg-180.katamayu.net/trackback/267

Comments

http://とかhttps://が入ってるとPOSTできません。ttp://のように適宜変えてください。