Elixir:
Debug-Ausgaben drucken
How to:
Mit Elixir kannst du einfach debuggen. Nutze die IO.inspect/2 Funktion, um Werte während des Programmablaufs zu überprüfen.
# Einfaches Beispiel
defmodule MyModule do
def greet(name) do
IO.inspect(name, label: "Der empfangene Name")
"Hallo #{name}"
end
end
MyModule.greet("Welt")Ausgabe im Terminal könnte so aussehen:
Der empfangene Name: "Welt"
"Hallo Welt"Deep Dive
Elixir basiert auf der Erlang VM (BEAM), daher sind die Debug-Funktionen teilweise von Erlangs leistungsstarken Tracing-Fähigkeiten geerbt. IO.inspect/2 ist für den Einstieg praktisch, aber für komplexeren Debugging solltest du in Tools wie :observer.start oder Debugging-Packages wie :debugger einsteigen.
Alternativ zum direkten Ausdrucken gibt es auch strukturiertere Logging-Frameworks wie Logger, die mehr Kontrolle und Flexibilität bieten.
Der Einsatz von IO.inspect/2 kann eleganter gestaltet werden durch Verwendung in einer Pipe:
"foo"
|> IO.inspect(label: "vor Änderung")
|> String.upcase()
|> IO.inspect(label: "nach Änderung")Das liefert dann eine klare Trennung des Datenflusses und des Debugging:
vor Änderung: "foo"
nach Änderung: "FOO"See Also
- Elixir’s
IOModul: https://hexdocs.pm/elixir/IO.html - Erlang’s
:observerTool: http://erlang.org/doc/man/observer.html - Elixir’s
Logger: https://hexdocs.pm/logger/Logger.html - Elixir Forum für Diskussionen und Fragen: https://elixirforum.com