相关疑难解决方法(0)

模式匹配功能对空地图

我正在玩模式匹配,我发现,将方法的匹配参数与空映射进行模式化并不容易.我认为它会是这样的:

defmodule PatternMatch do
  def modify(%{}) do
    %{}
  end

  def modify(map) do
    # expensive operation
    %{ modified: "map" }
  end
end
Run Code Online (Sandbox Code Playgroud)

但似乎第一个函数子句匹配任意映射:

iex> PatternMatch.modify(%{a: "map"})
==> %{}
Run Code Online (Sandbox Code Playgroud)

还有另一种检查空地图的方法吗?

elixir pattern-matching

45
推荐指数
3
解决办法
1万
查看次数

标签 统计

elixir ×1

pattern-matching ×1