Blocos, Procs e Lambdas
Entenda como Ruby lida com funções anônimas usando blocos, Procs e Lambdas.
Blocos, Procs e Lambdas é uma aula grátis de Ruby Academy no CoddyKit. Esta é a aula 2 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.
Blocos, procedimentos e funções lambda
Blocos, procedimentos e funções lambda
Ruby oferece maneiras poderosas de lidar com trechos de código reutilizáveis usando blocos, procedimentos e funções lambda.
Nesta lição, você aprenderá a usar esses conceitos com eficiência.

O que é um bloco?
O que é um bloco?
Um bloco é um trecho de código delimitado por do ... end ou por chaves { ... }.
[1, 2, 3].each do |num|
puts num * 2
endBlocos de uma linha
Blocos de uma linha
Para operações simples, você pode usar chaves {} em vez de do ... end.
[1, 2, 3].each { |num| puts num * 2 }Passando blocos para métodos
Passando blocos para métodos
Os blocos podem ser passados para métodos como each, map e times.
5.times { puts 'Hello, Ruby!' }O que é um procedimento?
O que é um procedimento?
Um procedimento é um objeto que armazena um bloco de código e pode ser executado posteriormente.
say_hello = Proc.new { puts 'Hello from Proc!' }
say_hello.callPassando argumentos para um procedimento
Passando argumentos para um procedimento
Os procedimentos podem receber argumentos, assim como os métodos.
square = Proc.new { |num| num * num }
puts square.call(4)O que é uma função lambda?
O que é uma função lambda?
Uma função lambda é semelhante a um procedimento, mas verifica os argumentos de forma mais rigorosa.
greet = ->(name) { puts "Hello, #{name}!" }
greet.call('Alice')Diferenças entre procedimentos e funções lambda
Diferenças entre procedimentos e funções lambda
- Os procedimentos ignoram argumentos extras, enquanto as funções lambda exigem que eles sejam informados corretamente.
- As funções lambda devolvem o controle ao método que as chamou, enquanto os procedimentos encerram a execução imediatamente.
proc_example = Proc.new { return 'Proc Exited' }
lambda_example = -> { return 'Lambda Executed' }
def test
puts proc_example.call
puts lambda_example.call
end
testParabéns!
Parabéns!
Você aprendeu a usar blocos, procedimentos e funções lambda em Ruby.
Em seguida, você explorará a palavra-chave de execução de blocos e a passagem dinâmica de blocos.

Perguntas Frequentes
A aula “Blocos, Procs e Lambdas” é grátis?
Sim — o texto completo de “Blocos, Procs e Lambdas” é 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 “Blocos, Procs e Lambdas”?
Entenda como Ruby lida com funções anônimas usando blocos, Procs e Lambdas. 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 2 de 3.
Quanto tempo leva a aula “Blocos, Procs e Lambdas”?
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