LoginSignup
5
5

More than 5 years have passed since last update.

Rubyのワンコールブロックがイケメンな話

Posted at

またメタプログラミングRubyネタ。小ネタです。

著者がRubyは簡潔にかけていいけどイケてないと言っているのが

name = ["i", "my", "me"]
name.map{|n| n.capitalize }
#=> ["I", "My", "Me"]

って感じのが、パイプとか中括弧とかでブロック作ってややこしい、と。
確かにその通りです。ちなみにこれをワンコールブロックというそうです。

ですが、これをRuby1.9以降ならSymbolのProc変換という方法で超簡潔にかけちゃいます!

name = ["i", "my", "me"]
name.map(&:capitalize)
#=> ["I", "My", "Me"]

string_numbers = ["1", "2", "3"]
string_numbers.map(&:to_i)
#=> [1, 2, 3]

イケメン!!
ちなみに1.8系とかでも自分で簡単に実装できちゃいます。

なぜこれが動くかとかは下記のサイトが丁寧だったのでご参考まで。
http://d.hatena.ne.jp/kitokitoki/20120415/p1

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5