当我尝试使用%{}
语法创建Map时,Elixir报告语法错误,但失败。 map = %{foo: "bar", hello: "world"}
不起作用。 map = %{:a => 1, 2 => :b}
(直接从本教程中获取)无效。
此问题在交互式环境中发生:
Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [smp:2:2] [async-threads:10] [hipe] [kernel-poll:false]
Interactive Elixir (0.12.5) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> %{2 => :b, :a => 1}
** (SyntaxError) iex:1: invalid token: %{2 => :b, :a => 1}
iex(1)> map = %{foo: "bar", hello: "world"}
** (SyntaxError) iex:1: invalid token: %{foo: "bar", hello: "world"}
iex(1)>
以及在运行脚本时:
$ cat simple.exs
map = %{:a => 1, 2 => :b}
$ elixir simple.exs
** (SyntaxError) simple.exs:1: invalid token: %{:a => 1, 2 => :b}
(elixir) lib/code.ex:301: Code.require_file/2
在(可能不相关的)音符上,i
命令也不起作用:
iex(1)> i {1,2}
** (RuntimeError) undefined function: i/1
我的Elixir安装是否搞砸了?这是在使用yum install elixir
安装的CentOS上。
答案 0 :(得分:0)
就我而言,问题是我使用的是Elixir / Erlang的非常旧的版本。 Elixir的CentOS yum
软件包未保持最新。
我卸载了此版本的Elixir,而是使用asdf
安装了最新版本的Erlang和Elixir。