2016-01-15 147 views
1

我有地图形式如下图所示:模式匹配键映射

Map = #{#{country=>"India"} => #{rank => 1}}. 

我想如下匹配它:

1. #{Key := V} = Map. 

OR

2. #{#{country := Country} := #{rank := Rank}} = Map. 

但它不适合我。有关如何完成的任何帮助?

回答

3

当匹配来自映射的键 - 值关联时,键表达式必须是带文字或绑定变量的表达式,请参阅documentation of maps模式中的映射)。

用火柴表达类似的问题:

#{Key := V} = M. 

Key是未绑定变量的是,这种匹配所有键/值绑定在地图M,而不是一个特定的键/值。与您尝试的其他匹配表达式相同,它可以匹配多个键。

正确的方法是完全在这里指定键,这样

#{#{country => "India"} := V} = Map.