以下の記事の続きです。
以下のコード二つは同じ結果を出力できることはわかりました。
従来
numbers = [1, 2, 3, 4, 5]
doubled = numbers.map { |number| number * 2 }
puts doubled
# => [2, 4, 6, 8, 10]
ナンパラ
numbers = [1, 2, 3, 4, 5]
doubled = numbers.map { _1 * 2 }
puts doubled
# => [2, 4, 6, 8, 10]
ナンパラを使用すると、ブロックの中をスッキリ書けます
ブロックに渡す要素が複数ある場合にもスッキリ書けそうです。
従来
numbers_array = [['a', 'b'], ['c', 'd'], ['e', 'f']] # 二次元配列
output = numbers_array.map { |el| "#{el[0]}と#{el[1]}" } # ← ここ
puts output
#=> aとb
#=> cとd
#=> eとf
↑は配列の何番目か要素を指定する必要がありました。
ナンパラ
numbers_array = [['a', 'b'], ['c', 'd'], ['e', 'f']] # 二次元配列
output = numbers_array.map { "#{_1}と#{_2}" } # ← ここ
puts output
#=> aとb
#=> cとd
#=> eとf
スッキリ!
ブロック引数渡さなくて良いのが楽!
い