たとえば以下のような2次元配列があり、それぞれの要素を掛け算する場合。
tateyoko = [ [20,40], [50,20], [40,90], ] menseki = [] tateyoko.each do |tateyoko| length = tateyoko[0] width = tateyoko[1] menseki << length * width end p menseki
menseki
配列はこんな結果になる。
menseki => [800, 1000, 3600]
ただ、ブロック引数に2次元配列を渡すとき、こんな書き方もできる。
tateyoko = [ [20,40], [50,20], [40,90], ] menseki = [] tateyoko.each do |tate, yoko| menseki << tate * yoko end
引数を2つにすることで、各配列の要素をそのまま受け取れる。
tateyoko.each do |tate, yoko|
2次元配列を処理するのに2重ループ回してたりしたけど、こっちのほうがスッキリ書けるケースはあるのかも。