如何在Elixir中打印PID?

时间:2016-03-24 12:37:51

标签: 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&lt; 0.59.0&gt;” pid的表示,因为REPL打印#PID<0.59.0>

4 个答案:

答案 0 :(得分:11)

我发现我使用了错误的inspectIO.inspect/2Kernel.inspect/2。第二个对我有用:

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

答案 1 :(得分:10)

您无需在let str = "01234" str.startIndex.stride(to: str.endIndex, by: 2).forEach { print($0,str.characters[$0]) } 的电话中打包0 0 2 2 4 4 。只需致电/** * Creates an event in the user's default calendar. */ function createEvent(title,startDt,endDt,desc,loc, col) { var calendarId = 'THIS IS WHAT IS CAUSING THE PROBLEM'; Logger.log(typeof(startDt)) var start = new Date(startDt); **var startISO = start.toISOString();** var end = new Date(endDt); var endISO = end.toISOString(); var event = { summary: title, location: loc, description: desc, start: { dateTime: startISO }, end: { dateTime: endISO }, // Sets the calendar color colorId: col }; event = Calendar.Events.insert(event, calendarId); Logger.log('Event ID: ' + event.getId()); } 即可完成您所需要的工作。

IO.inspect

答案 2 :(得分:1)

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

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

答案 3 :(得分:-1)

只需使用self()

即可

pid = self() IO.inspect(pid)