それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

Array#select(&:each_object_method)の簡略記法

配列に入った要素のメソッド順番に実行してselectの良い方法をyuku_tに教えてもらった。

&:method でオブジェクトのメソッドを指定できる

["a","b","c"].map(&:to_sym)
#=> [:a, :b, :c]

これは次のコードと同じ。

["a","b","c"].map{|e| e.to_sym }

仕組み、each にブロックとして実行できるProcを渡せる。

Emumerable#each( &block ) 

オブジェクトのメソッドはシンボルで指定できる。

Object.method(:object_id) 

以下の様なショートカットが出来るようになっている。

["a","b","c"].map(&:bytes).map(&:to_a)
#~> => [[97], [98], [99]]

クラスにメソッドがあるときのselectが便利

class User
  def active?
     # do something
  end
end

users = [ takuya, kohei, akira  ]

active_users = users.select( &:active? )


などやることで、結構省略できる便利機能でした。

教えてもらった。嬉しい