跳转至

Nexa 3.0 中的 2.4 兼容路径

本页说明保留的 2.4 语言与运行时路径,无版本声明的源码继续使用此入口。新 Open Programs 从 Nexa 3.0 开始,合同差异见迁移指南。

模式匹配

match 按分支顺序匹配数据。字面量适合离散值,绑定变量与 _ 提供捕获与兜底;复杂模式包括元组、数组、映射与 enum 变体。

完整匹配程序

flow main {
    value = 1;
    result = match value {
        0 => "zero",
        1 => "one",
        _ => "other"
    }
}

本例在离线运行中返回 one。优先将具体分支放前,通用分支放后。Guard 用于对已匹配的值追加条件;其表达式应保持确定、无副作用。

数据模式与意图路由

数据模式匹配检查实际结构和值。match 的语义意图路由需要模型推理,相关语法编译与实际路由质量分开验证。模型输入应有明确分类集合和兜底路径。

历史综合示例 examples/v1.2/test_match.nx 已在主仓库 manifest 标记为 draft;使用上面的独立完整示例。详细运行和 parser 用例见 tests/test_pattern_matching.py。

解构

let 从已有集合中绑定元素。下面的完整程序返回 5。

flow main {
    python! """items = [2, 3]"""
    let [a, b] = items;
    result = a + b;
}

模式写法:(a, b) 匹配元组,[first..rest] 捕获数组余项,{name, age: years} 绑定映射字段,Type::Variant(value) 描述 enum 变体。各模式的 parser/运行时测试单独存在;当前 enum 构造的集成限制见ADT。


来源与验证 · language / patterns