个人从事erlang(R16 –)开发, 最近在学习elixir, 记录下可能遇到的坑:

关键字列表 (≈erlang中的proplistss)

1
2
iex(23)> [1, fred:1, dave:2]
** (SyntaxError) iex:23: keyword argument must be followed by space after: fred:

:后面必须加空格

1
2
iex(33)> [ 1, "fred": 1, '12': 2 ] 
[1, {:fred, 1}, {:"12", 2}]

在elixir中:"fred"==binary, '12'=="12"
不管Key是binary还是list,都会强制转换为原子
在不注意的情况下, 直接atom超范围…

erlang中列表从1开始, elixir从0开始