我正在玩模式匹配,我发现,将方法的匹配参数与空映射进行模式化并不容易.我认为它会是这样的:
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)
还有另一种检查空地图的方法吗?