【问题标题】:What's the easiest way to turn a list data structure into string in Elixir在 Elixir 中将列表数据结构转换为字符串的最简单方法是什么
【发布时间】:2016-10-26 13:19:50
【问题描述】:

菜鸟问题:)

如何在 Elixir 中将列表数据结构转换为字符串?

例子:

["all"]               # into "['all']"
["project", "labels"] # into "['project', 'labels']"

【问题讨论】:

  • 您是否正在尝试将列表转换为 JSON?如果不是,你想如何处理\n 之类的字符或"\u{0}" 之类的不可打印字符?
  • 嗨@Dogbert,是的,我想将此列表转换为 JSON 格式。检查 ["a", b] 解决了这个问题。你觉得这个解决方案好吗?

标签: elixir


【解决方案1】:

我不主张唯一正确的决定,但也许这会有所帮助:

iex(13)> a = ['project', 'labels']
['project', 'labels']
iex(14)> b = inspect a
"['project', 'labels']"

但是对于双引号:

iex(21)> c = ["all"]
["all"]
iex(22)> d = inspect(c) |> String.replace("\"", "'")
"['all']"

因为"all" 是二进制文件,而'all' 是char_list。来自here

【讨论】:

  • 人们应该小心使用这种方法的数字列表。例如,inspect [7, 8] 将列表转换为"'\\a\\b'"(即,列表被解释为字符代码列表,请参阅official guide)。要将列表设为"[7, 8]",请使用charlists: :as_lists 选项,如下所示:inspect [7, 8], charlists: :as_lists。 (在this SO answer 看到了这个解决方案)
猜你喜欢
  • 2012-01-07
  • 1970-01-01
  • 1970-01-01
  • 2011-01-03
  • 1970-01-01
  • 2021-07-21
  • 2012-08-01
  • 1970-01-01
  • 2017-02-14
相关资源
最近更新 更多