如何通过 Elixir 中的键来理解从地图中获取价值

Zha*_* Yi 2 elixir

我是 Elixir 的新手,有一个关于地图键的问题。我有一个定义如下的地图:

a = %{"key" => 1}
Run Code Online (Sandbox Code Playgroud)

我可以通过a["key"]但不能访问该值a.key。如果我将地图定义为a = %{key: 1},那么我可以通过 获取值a.key。我想知道这两种声明键的方式有什么不同。

如果我有一个接受 key by 的函数a["key']并且我有一个定义为 的映射a = %{key: 1},我如何将此变量传递给函数?

例如,我有以下功能:

def fun1(data) do
    data.key ... // access key by atom
done
Run Code Online (Sandbox Code Playgroud)

我有一个使用字符串作为键的变量数据。如何将此变量传递给函数?

Jus*_*ood 7

这是用于您的密钥的两种不同类型。

  • %{"key" => 1} 正在使用字符串作为键。
  • %{key: 1}%{:key => 1}使用原子作为键的简写。

map.key如果键有原子,则只能使用语法。