2016-01-15 193 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.