Yield y paso de bloques
Explore la palabra clave yield y cómo pasar bloques a los métodos de forma dinámica
Yield y paso de bloques es una lección gratuita de Ruby Academy en CoddyKit. Esta es la lección 3 de 3. 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 3 lecciones en total.
Yield y paso de bloques
Yield y paso de bloques
Ruby permite pasar bloques a los métodos mediante la palabra clave yield.
En esta lección, aprenderá a utilizar yield para ejecutar un bloque dentro de un método.

Uso de yield
Uso de yield
La palabra clave yield ejecuta el bloque proporcionado al método.
def greet
puts 'Before yield'
yield
puts 'After yield'
end
greet { puts 'Hello from the block!' }Pasar parámetros con yield
Pasar parámetros con yield
La palabra clave yield puede pasar parámetros al bloque.
def square(num)
yield num * num
end
square(4) { |result| puts "Square: #{result}" }Comprobar si se ha proporcionado un bloque
Comprobar si se ha proporcionado un bloque
Puede comprobar si un método ha recibido un bloque mediante block_given?.
def greet
if block_given?
yield
else
puts 'No block given'
end
end
greet
greet { puts 'Hello from block!' }Pasar bloques con &block
Pasar bloques con &block
Los bloques se pueden pasar explícitamente como un parámetro mediante &block.
def execute_block(&block)
block.call if block
end
execute_block { puts 'Block executed!' }Uso de yield varias veces
Uso de yield varias veces
Un método puede llamar a yield varias veces.
def repeat(times)
times.times { yield }
end
repeat(3) { puts 'Hello!' }Pasar bloques como Procs
Pasar bloques como Procs
Los bloques se pueden convertir en Procs y pasar como argumentos.
def execute_proc(proc)
proc.call
end
my_proc = Proc.new { puts 'Proc executed!' }
execute_proc(my_proc)Uso de una Lambda como bloque
Uso de una Lambda como bloque
Se puede utilizar una Lambda en lugar de un bloque.
def execute_lambda(lmbd)
lmbd.call
end
my_lambda = -> { puts 'Lambda executed!' }
execute_lambda(my_lambda)¡Enhorabuena!
¡Enhorabuena!
Ha aprendido a utilizar yield y a pasar bloques en Ruby.
A continuación, aprenderá a trabajar con colecciones.

Preguntas frecuentes
¿La lección «Yield y paso de bloques» es gratis?
Sí — el texto completo de «Yield y paso de bloques» 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 3 lecciones en total.
¿Qué aprenderé en «Yield y paso de bloques»?
Explore la palabra clave yield y cómo pasar bloques a los métodos de forma dinámica 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 3 de 3.
¿Cuánto tiempo toma la lección «Yield y paso de bloques»?
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
- Definición de métodos
- Bloques, Procs y Lambdas
- Yield y paso de bloques