Elixir - 如何将关键字列表转换为字符串?

时间:2017-06-18 08:46:31

标签: elixir phoenix-framework

我有一个关键字列表:[key1: "value", key2: "value2", key3: "value3"]

我想将其转换为字符串:"key1:value1&key2:value2&key3:value3"

我正在考虑使用Enum.reduce,但该函数的参数是什么?

1 个答案:

答案 0 :(得分:5)

由于您希望在映射后在值之间添加分隔符,我建议使用Enum.map_join/3

iex(1)> list = [key1: "value", key2: "value2", key3: "value3"]
[key1: "value", key2: "value2", key3: "value3"]
iex(2)> list |> Enum.map_join("&", fn {k, v} -> "#{k}:#{v}" end)
"key1:value&key2:value2&key3:value3"

这是您使用Enum.reduce/3执行此操作的方法(在开始时插入额外的&,使用String.trim_leading/1删除):

iex(3)> list |> Enum.reduce("", fn {k, v}, acc -> "#{acc}&#{k}:#{v}" end) |> String.trim_leading("&")
"key1:value&key2:value2&key3:value3"