Yield e passagem de blocos
Explore a palavra-chave yield e como passar blocos para métodos dinamicamente.
Yield e passagem de blocos é uma aula grátis de Ruby Academy no CoddyKit. Esta é a aula 3 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Ruby Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ruby Academy inclui 3 aulas no total.
Execução e passagem de blocos
Execução e passagem de blocos
Ruby permite passar blocos para métodos usando a palavra-chave yield.
Nesta lição, você aprenderá a usar yield para executar um bloco dentro de um método.

Usando a palavra-chave de execução
Usando a palavra-chave de execução
A palavra-chave yield executa o bloco fornecido ao método.
def greet
puts 'Before yield'
yield
puts 'After yield'
end
greet { puts 'Hello from the block!' }Passando parâmetros durante a execução de blocos
Passando parâmetros durante a execução de blocos
A palavra-chave yield pode passar parâmetros para o bloco.
def square(num)
yield num * num
end
square(4) { |result| puts "Square: #{result}" }Verificando se um bloco foi fornecido
Verificando se um bloco foi fornecido
Você pode verificar se um método recebeu um bloco usando block_given?.
def greet
if block_given?
yield
else
puts 'No block given'
end
end
greet
greet { puts 'Hello from block!' }Passando blocos explicitamente
Passando blocos explicitamente
Os blocos podem ser passados explicitamente como um parâmetro usando &block.
def execute_block(&block)
block.call if block
end
execute_block { puts 'Block executed!' }Usando a execução de blocos várias vezes
Usando a execução de blocos várias vezes
Um método pode chamar yield várias vezes.
def repeat(times)
times.times { yield }
end
repeat(3) { puts 'Hello!' }Passando blocos como procedimentos
Passando blocos como procedimentos
Os blocos podem ser convertidos em procedimentos e passados como argumentos.
def execute_proc(proc)
proc.call
end
my_proc = Proc.new { puts 'Proc executed!' }
execute_proc(my_proc)Usando uma função lambda como bloco
Usando uma função lambda como bloco
Uma função lambda pode ser usada no lugar de um bloco.
def execute_lambda(lmbd)
lmbd.call
end
my_lambda = -> { puts 'Lambda executed!' }
execute_lambda(my_lambda)Parabéns!
Parabéns!
Você aprendeu a usar yield e a passar blocos em Ruby.
Em seguida, você aprenderá a trabalhar com coleções.

Perguntas Frequentes
A aula “Yield e passagem de blocos” é grátis?
Sim — o texto completo de “Yield e passagem de blocos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Ruby Academy, atualize para CoddyKit PRO. O curso de Ruby Academy inclui 3 aulas no total.
O que vou aprender em “Yield e passagem de blocos”?
Explore a palavra-chave yield e como passar blocos para métodos dinamicamente. Você pratica Ruby Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Ruby Academy?
Nenhuma experiência prévia é necessária. Ruby Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 3.
Quanto tempo leva a aula “Yield e passagem de blocos”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Ruby Academy?
Sim. Cada aula de Ruby Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Definição de métodos
- Blocos, Procs e Lambdas
- Yield e passagem de blocos