2016-03-24 12 views
5

Próbowałem:Jak mogę wydrukować PID w Elixir?

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

i obaj dali

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

Musi być jakiś sposób, aby uzyskać "#PID < 0.59.0>" reprezentację pid, ponieważ drukuje rEPL to #PID<0.59.0>.

Odpowiedz

7

Nie trzeba zawijać IO.inspect w wywołaniu IO.puts. Po prostu wywołanie IO.inspect zrobi to, czego szukasz.

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

Znalazłem, że używam złego inspect, jest IO.inspect/2 i Kernel.inspect/2. Drugi działa na mnie:

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

Można drukować prawie wszystko za pomocą 'inspect'. 'IO.inspect' to po prostu' IO.puts (Kernel.inspect (x)) ' –

+2

Więc po prostu' IO.inspect (pid) 'zadziała. – CoderDennis

-1

Wystarczy użyć we własnym zakresie()

pid = self() IO.inspect(pid)

Powiązane problemy