O Ruby é uma das linguagens mais interessantes para aprender a usar yield
, pois torna seu funcionamento claro e intuitivo.
Em Ruby, um método pode chamar yield
para executar um bloco de código fornecido durante a chamada do método. Exemplo básico:
def saudacao
puts "Antes do yield"
yield
puts "Depois do yield"
end
saudacao { puts "Olá, mundo!" }
Saída:
Antes do yield Olá, mundo! Depois do yield
O bloco { puts "Olá, mundo!" }
é passado para o método saudacao
e executado no ponto onde yield
aparece.
Passando argumentos para o yield
O yield
também pode passar argumentos para o bloco:
def dobro
yield 5
end
dobro { |n| puts n * 2 }
Saída:
10
Aqui, o número 5
é passado para o bloco, que o multiplica por 2.
Verificando se um bloco foi passado
Nem sempre um bloco será passado, então é uma boa prática verificar antes de chamar yield
:
def opcional
if block_given?
yield
else
puts "Nenhum bloco foi passado"
end
end
opcional
opcional { puts "Bloco passado!" }
Saída:
Nenhum bloco foi passado Bloco passado!