提取

提取器由 extractorExpression => match 表达式识别。提取器由两部分组成,由 => 运算符分隔。

  1. 左侧可以是任何表达式,其中所有出现的下划线 _ 都替换为当前匹配的值。
  2. 右侧是与左侧评价结果相匹配的图案。

由于右侧是图案,因此它可以包含另一个提取器。以下示例两个提取器:

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 中使用提取器。但是,可以在提取器的右侧具有或图案。

参考