0Pricing
Ruby Academy · Lección

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.

Yield y paso de bloques — ilustración 1

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.

Yield y paso de bloques — ilustración 10

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

  1. Definición de métodos
  2. Bloques, Procs y Lambdas
  3. Yield y paso de bloques
← Volver a Ruby Academy