1.apply: 拥有apply方法的任何对象在调用时可以省略掉.apply()。
2.Variable binding
In addition to the standalone variable patterns, you can also add a variableto any other pattern. You simply write the variable name, an at sign (@), andthen the pattern. This gives you a variable-binding pattern. The meaning ofsuch a pattern is to perform the pattern match as normal, and if the patternsucceeds, set the variable to the matched object just as with a simple variablepattern.
As an example, a pattern match that looks for theabsolute value operation being applied twice in a row. Such an expressioncan be simplified to only take the absolute value one time.
expr match { case UnOp("abs", e @ UnOp("abs", _)) => e case _ =>
}
there is a variable-binding pattern with e as the variableand UnOp("abs", _) as the pattern. If the entire pattern match succeeds,then the portion that matched the UnOp("abs", _) part is made available asvariable e. As the code is written, e then gets returned as is.