标签: elixir
为什么这个警卫不起作用?
def method(stuff, %{}), do: stuff
我必须检查地图大小才能使其正常工作?
def method(stuff, data) when map_size(data) == 0, do: stuff
第一个警卫不应该匹配空地图吗?
答案 0 :(得分:2)
即使值包含模式中不存在的任何键,映射模式也会匹配。额外的键被默默忽略。检查map_size(map) == 0是检查参数是否为空映射的正确方法。
map_size(map) == 0