【发布时间】:2016-11-25 08:18:34
【问题描述】:
我正在为 Elixir 的列表、元组、关键字列表等而苦苦挣扎。这个列表有什么问题?
这行得通
iex> [1, one: "one"] #=> [1, {:one, "one"}]
但这不是
iex> [one: "one", 1] #=> Syntax error before 1
【问题讨论】:
标签: elixir
我正在为 Elixir 的列表、元组、关键字列表等而苦苦挣扎。这个列表有什么问题?
这行得通
iex> [1, one: "one"] #=> [1, {:one, "one"}]
但这不是
iex> [one: "one", 1] #=> Syntax error before 1
【问题讨论】:
标签: elixir
这就是 Elixir 语法的 defined in the parser:identifier : expr 语法(大致对应于之前链接的解析器中的 kw 规则)仅在列表文字的末尾被接受。
【讨论】:
++ 运算符:iex(11)> [one: "one"] ++ [1] #=> [{:one, "one"}, 1] 或直接使用正确的语法{:one, "one"} 编写您的元组。混合不同的“神奇”语法拼写使任何解析器都很难猜出你真正想要什么;-)