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

时间:2015-10-04 12:11:26

标签: elixir

例如,

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,但它肯定还没有到位。

1 个答案:

答案 0 :(得分:14)

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