2016-03-24 2 views
5

Я попытался:Как распечатать PID в Elixir?

pid = spawn fn -> 1 + 2 end 
IO.puts(pid) 
IO.puts(IO.inspect(pid)) 

и оба дали

** (Protocol.UndefinedError) protocol String.Chars not implemented for #PID<0.59.0> 

Там должен быть способ, чтобы получить "#PID < 0.59.0>" представление pid, так как Repl отпечатков это #PID<0.59.0>.

ответ

7

Вам не нужно обернуть IO.inspect в вызове IO.puts. Просто звоните IO.inspect будет делать то, что вы ищете.

pid = spawn fn -> 1 + 2 end 
IO.inspect(pid) 
5

Я нашел, что я использую неправильный inspect, есть IO.inspect/2 и Kernel.inspect/2. Второй работает для меня:

pid = spawn fn -> 1 + 2 end 
IO.puts(inspect(pid)) 
+6

Вы можете печатать практически все, с помощью 'inspect'. 'IO.inspect' - это просто' IO.puts (Kernel.inspect (x)) ' –

+2

Итак, просто' IO.inspect (pid) 'будет работать. – CoderDennis

-1

Просто используйте себя()

pid = self() IO.inspect(pid)

Смежные вопросы