Elixir中如何将Process ID(PID)转换为元组或字符串
Elixir PID 类型转换操作方案
转换为 {0, 1692, 0} 格式三元组
直接调用Elixir内置的PID.to_tuple/1函数即可,该函数在Elixir 1.13及以上版本可用:
iex> PID.to_tuple(my_pid) {0, 1692, 0}
如果使用的是低于1.13的Elixir版本,可以通过Erlang标准库函数处理得到:
iex> pid_parts = my_pid |> :erlang.pid_to_list() |> to_string() |> String.trim_leading("#PID<") |> String.trim_trailing(">") |> String.split(".") |> Enum.map(&String.to_integer/1) iex> List.to_tuple(pid_parts) {0, 1692, 0}
转换为 "0.1692.0" 格式字符串
推荐先转三元组再拼接,兼容性更强:
iex> my_pid |> PID.to_tuple() |> Tuple.to_list() |> Enum.join(".") "0.1692.0"
也可以直接处理PID的字符串输出结果提取:
iex> my_pid |> inspect() |> String.slice(5..-2//1) "0.1692.0"
内容的提问来源于stack exchange,提问作者DogEatDog
相关产品推荐
相关产品推荐

