2 min read

Les paramètres numérotés en Ruby

Ruby 2.7 permet d'alléger l'écriture des blocs grâce aux paramètres numérotés. Voyons cela ensemble

La version 2.7 de Ruby a ajouté la possibilité d'utiliser des paramètres numérotés (numbered parameters) dans des blocs pour ne pas avoir besoin de nommer ceux-ci. Cette fonctionnalité permet ainsi d'alléger l’écriture de bloc en Ruby lorsque le nom des paramètres n’a que peu d’importance.

# Ruby 2.6
array = [1, 2, 3]
array.each { |i| puts i }
# 1
# 2
# 3

# Ruby 2.7
array = [1, 2, 3]
array.each { puts _1 } 
# 1
# 2
# 3

Si plusieurs arguments sont passés à un bloc il est aussi possible d'utiliser les paramètres numérotés.

# Ruby 2.6
[1, 2, 3].each_with_index { |i, index| puts i * index }
# 0
# 2
# 6

# Ruby 2.7
[1, 2, 3].each_with_index { puts _1 * _2 }
# 0
# 2
# 6

A noter, qu'il n’est pas possible d’utiliser ensemble les paramètres numérotés et les paramètres nommés.

pokemons = ['pikachu', 'salameche', 'bulbizarre']

pokemons.each { |pokemon| puts "I choose you #{_1}" }
# => SyntaxError

Liens

Advent of Ruby 3.0 - Day 03 - Toboggan Trajectory
An exploration into Ruby 2.7 and 3.0 features applied to Advent of Code Problems
Ruby 2.7 adds numbered parameters as default block parameters | BigBinary Blog
Ruby 2.7 series | Ruby 2.7 introduces numbered parameters as default block parameters