如何在Elixir中打印PID?

ece*_*ulm 8 elixir

我试过了:

pid = spawn fn -> 1 + 2 end
IO.puts(pid)
IO.puts(IO.inspect(pid))
Run Code Online (Sandbox Code Playgroud)

并且都给了一个

** (Protocol.UndefinedError) protocol String.Chars not implemented for #PID<0.59.0>
Run Code Online (Sandbox Code Playgroud)

必须有一种方法来获得"#PID <0.59.0>"的表示pid,因为REPL打印出来#PID<0.59.0>.

ece*_*ulm 13

我发现我使用了错误inspect,有IO.inspect/2Kernel.inspect/2.第二个对我有用:

pid = spawn fn -> 1 + 2 end
IO.puts(inspect(pid))
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用`inspect`打印大部分内容.`IO.inspect`只是`IO.puts(Kernel.inspect(x))` (8认同)

Cod*_*nis 10

你不需要IO.inspect打电话给IO.puts.只需打电话即可IO.inspect完成您所需的工作.

pid = spawn fn -> 1 + 2 end
IO.inspect(pid)
Run Code Online (Sandbox Code Playgroud)


Nic*_*oli 8

当您想将其附加到字符串(以显示一些额外的详细信息)时,可以使用字符串插值:

pid = spawn(fn -> 1 + 2 end)
IO.puts "Pid: #{inspect pid}"
Run Code Online (Sandbox Code Playgroud)