Elixir:递减映射项产生参数错误

时间:2017-12-15 09:35:43

标签: elixir

我来了accros一些我不期待的行为......这是正常的吗?

Interactive Elixir (1.5.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> test = %{a: 0}
%{a: 0}
iex(2)> test.a
0
iex(3)> test.a - 1
-1
iex(4)> test.a -1
** (ArgumentError) argument error
    :erlang.apply(%{a: 0}, :a, [-1])

嗯,解决方法非常简单。我只是想明白,为什么它会这样。

1 个答案:

答案 0 :(得分:0)

test.a - 1

被认为是来自key =>的减量:一个

test.a -1

被视为

test.a(-1) 

就像一个带有一个参数的方法一样,这就是它显示Argument错误的原因。 " test.a"中没有方法。这是一个论点