0Pricing
Ruby Academy · Aula

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.

Yield e passagem de blocos — ilustração 1

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.

Yield e passagem de blocos — ilustração 10

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

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