Elixir:
デバッグ出力を表示する
How to: (やり方)
Elixirでは、IO.inspect/2
とIO.puts/1
をよく使います。これらはターミナルに情報を出力します。
# 値を出力して変数をそのまま返します。
value = "Hello, World!"
IO.inspect(value)
# Output: "Hello, World!"
# 文字列を出力しますが、返り値は :ok となります。
IO.puts("Debugging my program")
# Output: Debugging my program
Deep Dive (深堀り)
Elixirの前身であるErlangは、1987年に開発されました。開発の初期から、ElixirやErlangでは関数の戻り値としてデバッグ情報を出力することが一般的でした。Logger
モジュールなどの代替手段もあります。これにより、設定に基づいてログレベルを柔軟に制御できます。
# Loggerを使用して情報を出力する
require Logger
Logger.debug("Debug info: #{inspect(value)}")
他の言語とは異なり、ElixirのIO.inspect/2
はデバッグ出力を行いつつ、値を変更せずに返す点が特徴です。つまり、デバッグ行を削除せずにコード内に残しても、プログラムの挙動に影響を与えません。
See Also (参考)
- ElixirのIOモジュールのドキュメント: https://hexdocs.pm/elixir/IO.html
- ElixirのLoggerモジュールのドキュメント: https://hexdocs.pm/logger/Logger.html