相同的變量說我有以下Scala的匹配,解決來自兩個不同的圖案
case class IntWrap(value:Int)
我想從2案件提取相同的變量,如下所示:
x match {
case value:Int | IntWrap(value) => dosomethingwith(x)
case _ => ???
}
但只這樣,我已經能夠做到這一點是:
x match {
case value:Int => dosomethingwith(x)
case IntWrap(value) => dosomethingwith(x)
case _ => ???
}
有沒有更好的辦法,因爲在我的現實生活中的情況下dosomethi ng實際上是一個很大的代碼塊,不容易封裝。
請記住,函數可以嵌套,所以如果dosomething「不容易封裝」,因爲它使用方法的局部變量或參數,您可以在匹配之前定義它並訪問相同的變量。 –