比對表達式
比對運算式的語法優先順序已變更。match
仍為關鍵字,但它像字母運算子一樣使用。這有幾個後果
-
match
運算式可以串連xs match { case Nil => "empty" case _ => "nonempty" } match { case "empty" => 0 case "nonempty" => 1 }
(或,省略選用的大括號)
xs match case Nil => "empty" case _ => "nonempty" match case "empty" => 0 case "nonempty" => 1
-
match
可以接在句點後面if xs.match case Nil => false case _ => true then "nonempty" else "empty"
-
比對運算式的被檢視項目必須是
InfixExpr
。以前,被檢視項目可以在後面加上型態指定: T
,但這不再受支援。因此,x : T match { ... }
現在必須寫成(x: T) match { ... }
。
語法
比對運算式的新語法如下。
InfixExpr ::= ...
| InfixExpr MatchClause
SimpleExpr ::= ...
| SimpleExpr ‘.’ MatchClause
MatchClause ::= ‘match’ ‘{’ CaseClauses ‘}’
在本文中