0Pricing
Ruby Academy · Leçon

Utilisation de send et eval

Découvrez comment exécuter des appels de méthodes dynamiques et évaluer des chaînes comme du code Ruby.

Utilisation de send et eval est une leçon Ruby Academy gratuite sur CoddyKit. Ceci est la leçon 4 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.

Exécution de code dynamique

Utiliser send et eval

Ruby fournit des méthodes puissantes comme send et eval pour exécuter du code de manière dynamique.

Ces méthodes permettent d'appeler des méthodes dynamiquement et d'évaluer des expressions Ruby lors de l'exécution.

Utilisation de send et eval — illustration 1

Qu'est-ce que la méthode send ?

Qu'est-ce que la méthode send ?

send permet d'appeler des méthodes dynamiquement par leur nom.

Elle peut invoquer des méthodes privées et publiques.

class Person
  def greet
    'Hello!'
  end
end

p = Person.new
puts p.send(:greet)

Utiliser send avec des arguments

Utiliser send avec des arguments

send peut transmettre des arguments aux méthodes de manière dynamique.

class Person
  def greet(name)
    "Hello, #{name}!"
  end
end

p = Person.new
puts p.send(:greet, 'Alice')

Appeler des méthodes privées avec send

Appeler des méthodes privées avec send

send peut contourner les règles de visibilité des méthodes et appeler des méthodes privées.

class Person
  private
  def secret
    'This is a secret!'
  end
end

p = Person.new
puts p.send(:secret)

Qu'est-ce que la méthode eval ?

Qu'est-ce que la méthode eval ?

eval exécute une chaîne comme du code Ruby lors de l'exécution.

code = "5 + 10"
puts eval(code) # Outputs: 15

Exécuter du code dynamique avec eval

Exécuter du code dynamique avec eval

eval peut définir dynamiquement des variables et exécuter des expressions.

eval("x = 100")
puts x

Définir des méthodes avec eval

Définir des méthodes avec eval

Utilisez eval pour définir des méthodes dynamiquement.

eval("def dynamic_method; 'Hello from eval'; end")
puts dynamic_method

Risques de sécurité liés à send et eval

Risques de sécurité liés à send et eval

Une utilisation incorrecte de send et eval peut introduire des risques de sécurité :

  • eval peut exécuter du code non fiable et entraîner des vulnérabilités de sécurité.
  • send peut appeler des méthodes privées ou sensibles.
  • Utilisez-les avec prudence pour éviter tout comportement involontaire.

Récapitulatif de send et eval

Félicitations !

Vous avez appris à utiliser send et eval pour exécuter des méthodes de manière dynamique.

Ceci conclut la section consacrée à la métaprogrammation en Ruby.

Utilisation de send et eval — illustration 10

Questions Fréquemment Posées

La leçon « Utilisation de send et eval » est-elle gratuite ?

Oui — le texte complet de « Utilisation de send et eval » 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 « Utilisation de send et eval » ?

Découvrez comment exécuter des appels de méthodes dynamiques et évaluer des chaînes comme du code Ruby. 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 4 sur 4.

Combien de temps prend la leçon « Utilisation de send et eval » ?

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. Qu’est-ce que la métaprogrammation ?
  2. Définition dynamique de méthodes
  3. Classes ouvertes et modification à chaud
  4. Utilisation de send et eval
← Retour à Ruby Academy