Elixir:
Exibindo saídas de depuração
Como Fazer:
Para imprimir valores durante a execução de um programa Elixir, você pode usar a função IO.inspect/2
, que retorna o valor inspecionado, permitindo que a inspeção não interrompa o fluxo do seu código.
defmodule ExemploDebug do
def somar_e_inspect(a, b) do
a + b
|> IO.inspect(label: "resultado da soma")
end
end
ExemploDebug.somar_e_inspect(2, 3)
Saída esperada:
resultado da soma: 5
Você pode também usar o IO.puts/1
, se só quiser imprimir algo simples, sem retornar o valor.
IO.puts("Hello, debug!")
Saída esperada:
Hello, debug!
Aprofundando
Historicamente, a impressão para depuração é um dos métodos de diagnóstico mais antigos e universais. Quase todas as linguagens de programação têm alguma forma de imprimir saídas para ajudar no desenvolvimento e no debug.
No Elixir, além das funções IO.inspect
e IO.puts
, existem abordagens mais avançadas como :debugger
, que inicia um ambiente de depuração completo, e o :observer
, que permite inspecionar um sistema em execução visualmente.
As macros Logger.debug/2
, Logger.info/2
, Logger.warn/2
, e Logger.error/2
são alternativas quando se trata de emitir mensagens que podem ser filtradas por níveis de importância e configuradas para serem exibidas ou não, dependendo do ambiente (teste, desenvolvimento, produção).
Detalhes de implementação, como evitar a impressão em produção e a sobrecarga da saída de logs numa aplicação em alta escala, também são assuntos importantes a se considerar.