nelmoの日記帳

エンジニア見習いの備忘録とかです。

Array#mapで多次元配列を扱う時、複数個のブロック引数で値をとれる

本日のRubyに関する学び。

a = [1,2,3]

a.map do |element|
  element.class #=> Fixnum,Fixnum,Fixnum
end

a.map do |first,second|
  second #=> nil,nil,nil
end
  
b = [[1,2],[3,4],[5,6]]

b.map do |element|
  element.class #=> Array
end

b.map do |first,second|
  second #=> 2,4,6
end

ドキュメントにも可変長引数に関する言及が無かったので最初よく分からなかったが、How does Array.map work for 2D arrays? - Ruby Forumを読んでいたら仕組みについては少し腹落ちした感じがある。

とはいえまだ人に説明できるほど理解できたわけではないので後日もう一回読む。