如何在Elixir中检查字典类型

rob*_*kuz 5 elixir

我想检查给予Elixir中的函数的参数类型是否为Dictionary.我该怎么做呢?

rob*_*kuz 2

首先你必须知道 Elixir 支持 2 种字典类型

  • Erlangs 原生地图类型(适用于仅包含有限项目的地图)
    map = %{}
  • Elixir 自己的字典类型(具有潜在大负载的字典)
    dict = HashDict.new

然而,这两种类型都需要使用 Erlangs native 进行检查:erlang.is_map

def some_fun(arg) when :erlang.is_map(arg) do
    #do your thing
end
Run Code Online (Sandbox Code Playgroud)

更多信息可以在第 7.2 和 7.3 节中找到 ( http://elixir-lang.org/getting_started/7.html )