2015-10-04 16 views
6

Ví dụ,Tại sao bạn không thể có một biến làm khóa trong bản đồ?

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

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

Rõ ràng đó là xây dựng bản đồ tại thời gian biên dịch, mà có thể là hiệu quả hơn, nhưng tại sao nó không rơi trở lại một constructor runtime giống như hầu hết các ngôn ngữ với literals cấu trúc dữ liệu? Quan tâm để biết nếu có một cái gì đó về các đặc điểm của bản đồ trong Elixir mà tôi đang mất tích.

Thêm vào sự nhầm lẫn là Google Groups message này từ hơn một năm trước, nơi José Valim nói:

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

Nhưng đó là một năm trước đây, bây giờ, và tôi không thể tìm thấy bất kỳ tài liệu tham khảo khác để này. Phiên bản Erlang mà anh ta đang nói đến là gì? Tôi đang chạy 18 ngay bây giờ và nó chắc chắn vẫn chưa có.

Trả lời

14

Erlang 18 thêm hỗ trợ cho nó và chúng tôi cần cập nhật Elixir để tận dụng điều đó. Do đó, chúng tôi dự định hỗ trợ nó trên phiên bản Elixir tiếp theo, Elixir v1.2.

Các vấn đề liên quan