Elixir 空地图保护不工作
为什么这个警卫不工作Elixir 空地图保护不工作,elixir,Elixir,为什么这个警卫不工作 def method(stuff, %{}), do: stuff 我必须检查地图的大小才能让它正常工作 def method(stuff, data) when map_size(data) == 0, do: stuff 第一个保护不应该匹配空映射吗?映射模式匹配,即使该值包含模式中不存在的任何键。额外的键将被悄悄忽略。检查map_sizemap==0是检查参数是否为空映射的正确方法。映射模式匹配,即使该值包含模式中不存在的任何键。额外的键将被悄悄忽略。检查map\
def method(stuff, %{}), do: stuff
我必须检查地图的大小才能让它正常工作
def method(stuff, data) when map_size(data) == 0, do: stuff
第一个保护不应该匹配空映射吗?映射模式匹配,即使该值包含模式中不存在的任何键。额外的键将被悄悄忽略。检查map_sizemap==0是检查参数是否为空映射的正确方法。映射模式匹配,即使该值包含模式中不存在的任何键。额外的键将被悄悄忽略。检查map\u sizemap==0是检查参数是否为空映射的正确方法。我还建议您将is\u map与map\u size一起使用,以防止map\u size抛出BadMapError。@lapinkoira guard子句以when关键字开头,后跟布尔表达式:。因此,您可能需要修改问题中使用的术语,因为您提供的第一个代码示例不包含guard子句。@guard表达式中的Raghu函数不会向用户抛出错误。如果出现错误,则保护将自动计算为false,并跳过该子句。因此,map\u sizemap==0是正确的。我还建议您将is\u map与map\u size一起使用,以防止map\u size抛出BadMapError。@lapinkoira guard子句以when关键字开头,后跟布尔表达式:。因此,您可能需要修改问题中使用的术语,因为您提供的第一个代码示例不包含guard子句。@guard表达式中的Raghu函数不会向用户抛出错误。如果出现错误,则保护将自动计算为false,并跳过该子句。因此,map_sizemap==0是正确的。