0Pricing
Ruby Academy · Leçon

Récapitulatif des blocs

Transmettez des blocs aux méthodes

Récapitulatif des blocs est une leçon Ruby Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Ruby Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Ruby Academy comprend 4 leçons au total.

Passer des blocs aux méthodes

Un bloc est un morceau de code que vous transmettez à une méthode. De nombreuses méthodes Ruby, comme each, acceptent un bloc et l'exécutent pour vous. Les blocs sont au fondement du style expressif de Ruby.

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

Deux syntaxes de blocs

Utilisez do ... end pour les blocs sur plusieurs lignes et les accolades { } pour les instructions courtes sur une seule ligne. Elles se comportent de la même manière.

[1, 2, 3].each { |n| puts n }

Paramètres de bloc

Les noms placés entre les barres | | sont les paramètres du bloc. La méthode détermine les valeurs qui leur sont transmises.

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

yield appelle le bloc

À l'intérieur d'une méthode, yield exécute le bloc transmis. Vous n'avez pas besoin de déclarer le bloc dans la liste des paramètres pour utiliser yield.

def twice
  yield
  yield
end
twice { puts "Hi" }

yield avec des arguments

Transmettez des valeurs au bloc avec yield. Elles sont affectées aux paramètres du bloc.

def greet_each(names)
  names.each { |n| yield n }
end
greet_each(["Ann", "Bo"]) { |name| puts "Hello #{name}" }

block_given?

Appeler yield sans bloc déclenche une erreur. Vérifiez d'abord avec block_given? pour rendre le bloc facultatif.

def maybe
  if block_given?
    yield
  else
    puts "No block provided"
  end
end
maybe
maybe { puts "Block ran" }

Les blocs renvoient des valeurs

Un bloc s'évalue jusqu'à sa dernière expression. Les méthodes comme map rassemblent ces valeurs de retour dans un nouveau tableau.

squares = [1, 2, 3, 4].map { |n| n * n }
p squares

La valeur de yield

yield renvoie lui-même la valeur du bloc, ce qui permet à une méthode de transformer une entrée au moyen d'un bloc fourni par l'appelant.

def transform(x)
  yield x
end
result = transform(5) { |n| n + 100 }
puts result

Capturer un bloc avec &

Préfixez le dernier paramètre par & pour capturer le bloc sous la forme d'un objet Proc que vous pouvez stocker ou transmettre.

def run(&block)
  block.call
end
run { puts "Called via block.call" }

Paramètres numérotés

Ruby moderne vous permet d’omettre le nom d’un seul paramètre de bloc en utilisant _1 (ou it dans Ruby 3.4+). Pratique pour les blocs très courts.

[10, 20, 30].each { puts _1 }

Mise en pratique

Les blocs permettent aux méthodes d’accepter un comportement :

  • do...end ou { } fournissent un bloc.
  • yield l’exécute ; block_given? vérifie sa présence.
  • &block le transforme en objet réutilisable.
def repeat(times)
  return unless block_given?
  times.times { |i| yield i }
end
repeat(3) { |i| puts "Step #{i}" }

Vérification rapide

Vérifiez votre compréhension des blocs.

Récapitulatif

Vous avez revu les blocs :

  • Les blocs transmettent un comportement aux méthodes via do...end ou { }.
  • yield exécute le bloc et renvoie sa valeur.
  • block_given? rend les blocs facultatifs.
  • &block capture un bloc sous forme de Proc.
def wrap
  puts "<<"
  yield
  puts ">>"
end
wrap { puts "content" }

Questions Fréquemment Posées

La leçon « Récapitulatif des blocs » est-elle gratuite ?

Oui — le texte complet de « Récapitulatif des blocs » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Ruby Academy, passe à CoddyKit PRO. Le cours Ruby Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Récapitulatif des blocs » ?

Transmettez des blocs aux méthodes Tu pratiques Ruby Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Ruby Academy ?

Aucune expérience préalable n'est requise. Ruby Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Récapitulatif des blocs » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Ruby Academy ?

Oui. Chaque leçon Ruby Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Récapitulatif des blocs
  2. Procs
  3. Lambdas
  4. Fermetures et portée
← Retour à Ruby Academy