array.map(&:method)の【&:】の部分ってなに?
mapメソッド
mapメソッド
は、要素の数だけ繰り返しブロックを実行し、ブロックの戻り値を集めた配列を作成して返す。
array = ["a", "b", "c"]
array = array.map {|item| item.upcase }
=> ["a", "b", "c"]
何をしているのか
array.map(&:メソッド名)
の型をし、配列の要素1つ1つに(&:メソッド名)
で与えられたメソッドを呼んでいる。
['a' ,'b'].map(&:upcase) #=> ["A", "B"]
&
はそのメソッドをブロックとして展開することを意味する。
この時、呼び出すオブジェクトは各要素として呼び出す。
例えばメソッドをid
とした場合、
・map(& )
はブロックmap{|x| }
に展開
・その中身は:id
のメソッド.id
array.map(&:id)
は以下と同義になる。
array.map{|x| x.id}
||
array.map(&:id)
参考記事
Author And Source
この問題について(array.map(&:method)の【&:】の部分ってなに?), 我々は、より多くの情報をここで見つけました https://qiita.com/mmaumtjgj/items/4fb98b0f6022d14c0078著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .