0Pricing
Ruby Academy · Lección

Uso de send y eval

Descubra cómo ejecutar llamadas dinámicas a métodos y evaluar cadenas como código Ruby

Uso de send y eval es una lección gratuita de Ruby Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Ruby Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Ruby Academy incluye 4 lecciones en total.

Ejecución dinámica de código

Uso de send y eval

Ruby proporciona métodos potentes como send y eval para ejecutar código dinámicamente.

Estos métodos permiten llamar a métodos dinámicamente y evaluar expresiones de Ruby durante la ejecución.

Uso de send y eval — ilustración 1

¿Qué es el método send?

¿Qué es el método send?

send permite llamar a métodos dinámicamente por su nombre.

Puede invocar métodos privados y públicos.

class Person
  def greet
    'Hello!'
  end
end

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

Uso de send con argumentos

Uso de send con argumentos

send puede pasar argumentos a los métodos dinámicamente.

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

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

Llamar a métodos privados con send

Llamar a métodos privados con send

send puede omitir las reglas de visibilidad de los métodos y llamar a métodos privados.

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

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

¿Qué es el método eval?

¿Qué es el método eval?

eval ejecuta una cadena como código de Ruby durante la ejecución.

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

Ejecutar código dinámico con eval

Ejecutar código dinámico con eval

eval puede definir variables dinámicamente y ejecutar expresiones.

eval("x = 100")
puts x

Definir métodos con eval

Definir métodos con eval

Utilice eval para definir métodos dinámicamente.

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

Riesgos de seguridad de send y eval

Riesgos de seguridad de send y eval

El uso incorrecto de send y eval puede introducir riesgos de seguridad:

  • eval puede ejecutar código que no sea de confianza, lo que puede provocar vulnerabilidades de seguridad.
  • send puede llamar a métodos privados o sensibles.
  • Utilícelos con precaución para evitar comportamientos imprevistos.

Resumen de send y eval

¡Enhorabuena!

Ha aprendido a utilizar send y eval para ejecutar métodos dinámicamente.

Con esto concluye la sección de metaprogramación en Ruby.

Uso de send y eval — ilustración 10

Preguntas frecuentes

¿La lección «Uso de send y eval» es gratis?

Sí — el texto completo de «Uso de send y eval» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Ruby Academy, actualiza a CoddyKit PRO. El curso de Ruby Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Uso de send y eval»?

Descubra cómo ejecutar llamadas dinámicas a métodos y evaluar cadenas como código Ruby Practicas Ruby Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Ruby Academy?

No se requiere experiencia previa. Ruby Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Uso de send y eval»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Ruby Academy?

Sí. Cada lección de Ruby Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. ¿Qué es la metaprogramación?
  2. Definición dinámica de métodos
  3. Clases abiertas y monkey patching
  4. Uso de send y eval
← Volver a Ruby Academy