Uso de send e eval
Descubra como executar chamadas dinâmicas de métodos e avaliar strings como código Ruby.
Uso de send e eval é uma aula grátis de Ruby Academy no CoddyKit. Esta é a aula 4 de 4. 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 4 aulas no total.
Execução de código dinâmico
Usando send e avaliação
Ruby fornece métodos poderosos, como send e eval, para executar código dinamicamente.
Esses métodos permitem chamar métodos dinamicamente e avaliar expressões Ruby durante a execução.

O que é o método send?
O que é o método send?
send permite chamar métodos dinamicamente pelo nome.
Ele pode invocar métodos privados e públicos.
class Person
def greet
'Hello!'
end
end
p = Person.new
puts p.send(:greet)Usando send com argumentos
Usando send com argumentos
send pode passar argumentos para métodos dinamicamente.
class Person
def greet(name)
"Hello, #{name}!"
end
end
p = Person.new
puts p.send(:greet, 'Alice')Chamando métodos privados com send
Chamando métodos privados com send
send pode ignorar as regras de visibilidade dos métodos e chamar métodos privados.
class Person
private
def secret
'This is a secret!'
end
end
p = Person.new
puts p.send(:secret)O que é o método de avaliação?
O que é o método de avaliação?
eval executa uma cadeia de caracteres como código Ruby durante a execução.
code = "5 + 10"
puts eval(code) # Outputs: 15Executando código dinâmico com avaliação
Executando código dinâmico com avaliação
eval pode definir variáveis dinamicamente e executar expressões.
eval("x = 100")
puts xDefinindo métodos com avaliação
Definindo métodos com avaliação
Use eval para definir métodos dinamicamente.
eval("def dynamic_method; 'Hello from eval'; end")
puts dynamic_methodRiscos de segurança de send e avaliação
Riscos de segurança de send e avaliação
Usar send e eval de maneira inadequada pode introduzir riscos de segurança:
evalpode executar código não confiável, causando vulnerabilidades de segurança.sendpode chamar métodos privados ou confidenciais.- Use-os com cuidado para evitar comportamentos indesejados.
Recapitulação de send e avaliação
Parabéns!
Você aprendeu a usar send e eval para executar métodos dinamicamente.
Isso conclui a seção Metaprogramação em Ruby.

Perguntas Frequentes
A aula “Uso de send e eval” é grátis?
Sim — o texto completo de “Uso de send e eval” é 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 4 aulas no total.
O que vou aprender em “Uso de send e eval”?
Descubra como executar chamadas dinâmicas de métodos e avaliar strings como código Ruby. 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 4 de 4.
Quanto tempo leva a aula “Uso de send e eval”?
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
- O que é metaprogramação?
- Definição dinâmica de métodos
- Classes abertas e monkey patching
- Uso de send e eval