2013-07-31 28 views
2

scala中是否有語法或方法來訪問case語句中的整個匹配結構?斯卡拉,如何訪問整個匹配:X匹配{case Y(z)as matched =>

爲了澄清,如果有一個 「爲」 關鍵詞,我們可以做到這一點:

x match { 
    case Y(z) as matched => 
    // do stuff both with "matched" and "z" here ... 
    ... 
} 
+0

可能的重複[斯卡拉有一個語句相當於ML的「作爲」聲明?](http://stackoverflow.com/questions/13205726/does-scala-have-a-statement-equivalent-to-mls-as-statement ) – DaoWen

回答

7

您應該能夠使用@語法:

x match { 
    case matched @ Y(z) => 
    // do stuff both with "matched" and "z" here ... 
    ... 
} 

here

+2

這稱爲[變量綁定](http://www.artima.com/pins1ed/case-classes-and-pattern-matching.html#sec%3avar-binding)。 – DaoWen