Rubyの2次元配列で複数のブロックパラメーターを利用するときに、「.with_index」を併用するときの注意点について

2次元配列をeach等で回すときに複数のブロックパラメーターを利用すると便利だ。

array = [["taro", 1], ["jun", 2], ["sachi", 3]]

array.each do |name, number|
  puts "#{name}と#{number}組"
end

しかし、「.with_index」を一緒に使う時は注意が必要だ。

次のコードはダメ。

array.each.with_index do |name. number,  i| #←ここね!
後略

解決策として複数のブロックパラメーターをかっこ()でくくる

array = [["taro", 1], ["jun", 2], ["sachi", 3]]

array.each.each_index do |(name, number), i| #iはインデックス値
  puts "インデックスは#{i}です"
  puts "#{name}と#{number}組"
end
スポンサーリンク
投稿記事
スポンサーリンク
OKE2GOU