在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Scala/ 模式的種類(四)
模式的種類(三)
模式限定修飾
簡單的示例
模式的種類(二)
模式無處不在
模式的種類(四)
Sealed Classes
Option 類型
重疊模式定義
模式的種類(一)

模式的種類(四)

變量綁定

除了獨立的變量模式外,你還可以把一個變量添加到另外的模式中,你簡單的定義一個變量,然后再添加一個 @ 符號,然后再寫其它的模式。 這就定義了一個變量綁定過的模式。這意味著還是按照標準的模式匹配來匹配輸入對象,如果匹配成功,匹配成功的對象會賦值到定義的變量中。
例如:

    expr match {
        case UnOp("abs",e @ UnOp("abs",_)) => e
        case _ =>
    }

這里定義了一綁定到變量的模式,e @ UnOp(“abs”,_),而整個模式是匹配了運用了兩次 “abs” 操作的對象,如果匹配成功,e 將賦值為匹配 UnOp(“abs”,_) 部分:比如:

    scala>  val expr = UnOp("abs",UnOp("abs",Number(5)))
    expr: UnOp = UnOp(abs,UnOp(abs,Number(5.0)))

    scala> expr match {
     | case UnOp("abs",e @ UnOp("abs",_)) => e
     | case _ =>
     |   }
    res0: Any = UnOp(abs,Number(5.0))

可以看到匹配 UnOp(“abs”,UnOp(“abs”,Number(5))) 成功后,e 賦值為 UnOp(abs,Number(5.0))。