0Pricing
Ruby Academy · Aula

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.

Blocos, Procs e Lambdas — ilustração 1

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
end

Blocos 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.call

Passando 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

test

Parabé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.

Blocos, Procs e Lambdas — ilustração 10

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

  1. Definição de métodos
  2. Blocos, Procs e Lambdas
  3. Yield e passagem de blocos
← Voltar para Ruby Academy