提取

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

參考