2015-10-04 6 views
6

Zum BeispielWarum können Sie keine Variable als Schlüssel in einem Kartenliteral haben?

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

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

Offensichtlich ist es die Karte bei der Kompilierung des Aufbau, die effizienten sein könnte, aber warum es nicht mit Datenstruktur Literale wie die meisten Sprachen zu einem Laufzeit Konstruktor zurückgreifen? Interessiert zu wissen, ob es etwas über die Eigenschaften von Karten in Elixir gibt, die ich vermisse.

zur Verwirrung hinzuzufügen, ist dies Google Groups message von vor über einem Jahr, wo José Valim sagt:

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

Aber das war vor einem Jahr, jetzt, und ich kann keine anderen Verweise auf diese finden. Auf welche Erlang-Version bezog er sich? Ich laufe gerade 18 und es ist definitiv noch nicht vorhanden.

Antwort

14

Erlang 18 Unterstützung hinzugefügt und wir müssen Elixir aktualisieren, um das zu nutzen. Daher planen wir, es bei der nächsten Elixir-Version, Elixir v1.2, zu unterstützen.

Verwandte Themen