Menu
Coddy logo textTech

Paramètres de bloc

Fait partie de la section Logique et Flux du Journey Ruby de Coddy — leçon 18 sur 56.

Les variables entre les barres verticales, |x|, |x, y|, sont les paramètres de bloc. Ils nomment les valeurs que la méthode passe au bloc.

Certaines méthodes passent une seule valeur, d'autres en passent plusieurs. each passe un élément à la fois :

[10, 20, 30].each { |n| puts n }

each_with_index transmet deux arguments, l'élément et son index :

["a", "b", "c"].each_with_index do |letter, i|
  puts "#{i}: #{letter}"
end
# 0: a
# 1: b
# 2: c

Lors de l'itération d'un hash, les paramètres du bloc sont la clé et la valeur :

{ a: 1, b: 2 }.each do |key, value|
  puts "#{key} = #{value}"
end

Le nombre et l'ordre des paramètres de bloc dépendent de ce que la méthode produit. En cas de doute, consultez la documentation ou essayez un paramètre pour voir ce que vous obtenez.

challenge icon

Défi

Facile

Le hash scores est fourni. Parcourez-le avec each_with_index sur sa forme to_a afin d'avoir accès à la fois à la paire (name, points) et à sa position. Affichez une ligne par entrée dans ce format :

<rank>. <name> - <points>

rank commence à 1 (pas 0).

Pour le hash par défaut, la sortie est :

1. Alice - 90
2. Bob - 85
3. Cara - 78

Aide-mémoire

Les paramètres de bloc sont nommés entre des barres verticales |...| et reçoivent les valeurs transmises par la méthode :

# each – un paramètre
[10, 20, 30].each { |n| puts n }

# each_with_index – l'élément et l'index
["a", "b", "c"].each_with_index do |letter, i|
  puts "#{i}: #{letter}"
end

# hash each – la clé et la valeur
{ a: 1, b: 2 }.each do |key, value|
  puts "#{key} = #{value}"
end

hash.to_a convertit un hash en un tableau de paires [key, value], ce qui est utile avec each_with_index :

{ a: 1, b: 2 }.to_a.each_with_index do |(key, value), i|
  puts "#{i}: #{key} = #{value}"
end

Essayez vous-même

scores = { "Alice" => 90, "Bob" => 85, "Cara" => 78 }

# À FAIRE : afficher "<rank>. <name> - <points>" pour chaque entrée, le rang commence à 1
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et Flux