为什么不能将变量作为地图文字中的键?

Why can't you have a variable as a key in a map literal?

例如,

x = "foo"
%{foo => 1}

**(CompileError) iex:11: illegal use of variable x in map key

显然它是在编译时构建映射,这可能更有效,但为什么它不像大多数具有数据结构文字的语言那样退回到运行时构造函数?有兴趣知道我是否遗漏了有关 Elixir 中地图特征的信息。

更令人困惑的是 Google Groups message 一年多以前,José Valim 说:

Variable keys in maps will be available in the next Erlang release.

但那是一年前的事了,现在我找不到任何其他参考资料。他指的是哪个 Erlang 版本?我现在 运行 18 岁,但肯定还没有到位。

Erlang 18 添加了对它的支持,我们需要更新 Elixir 以利用它。因此,我们计划在下一个 Elixir 版本 Elixir v1.2 中支持它。