提取
提取器由 extractorExpression => match
表达式识别。提取器由两部分组成,由 =>
运算符分隔。
- 左侧可以是任何表达式,其中所有出现的下划线
_
都替换为当前匹配的值。 - 右侧是与左侧评价结果相匹配的图案。
由于右侧是图案,因此它可以包含另一个提取器。以下示例链两个提取器:
static public function main() {
switch(3) {
case add(_, 1) => mul(_, 3) => a:
trace(a); // mul(add(3 + 1), 3)
}
}
static function add(i1:Int, i2:Int) {
return i1 + i2;
}
static function mul(i1:Int, i2:Int) {
return i1 * i2;
}
目前不可能在 or-patterns 中使用提取器。但是,可以在提取器的右侧具有或图案。