Menu
Coddy logo textTech

Qu'est-ce qu'un bloc ?

Fait partie de la section Logique et Flux du Journey Ruby de Coddy. Leçon 15 sur 56.

Vous écrivez déjà des blocs. Chaque fois que vous avez écrit each do |x| ... end, la partie entre do et end était un bloc : un morceau de code transmis à une méthode.

[1, 2, 3].each do |n|
  puts n * 2
end

Ici, each est une méthode du tableau, et do |n| ... end est le bloc. each exécute le bloc une fois pour chaque élément, en le lui transmettant sous la forme de n.

Les blocs ne sont pas des objets distincts que vous stockez dans des variables ; ils sont directement liés à l’appel de méthode. Une méthode reçoit un bloc ou n’en reçoit pas, et la plupart des méthodes d’itération (each, map, select, times) sont conçues pour en recevoir un.

3.times do |i|
  puts "hi #{i}"
end

Appeler une méthode sans son bloc modifie ce qu’elle fait. [1,2,3].map sans bloc renvoie un énumérateur au lieu d’un tableau transformé, le bloc fait donc partie de ce que signifie la méthode.

challenge icon

Défi

Débutant

Lisez un entier n depuis l’entrée. Utilisez la méthode times avec un bloc pour afficher le message Iteration <i> pour chaque valeur de i de 0 à n - 1.

Pour l’entrée 3, la sortie est :

Iteration 0
Iteration 1
Iteration 2

Essayez vous-même

n = gets.to_i

# TODO: utilisez n.times avec un bloc pour afficher chaque itération
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

Entraînez-vous par vous-même : Compilateur Ruby en ligne