用途:在 Dart 3 代码中按惯用方式应用模式匹配、switch 表达式与解构,用于校验数据模式、处理代数数据类型(sealed class)以及拆解数据结构。
主要能力:提供模式选择策略,按数据结构与目标选择 Map、List、Object、Record、Relational、Logical-or/and、Cast、Null-check、Wildcard 等模式;区分 switch 表达式(产出值、必须穷尽)与 switch 语句(执行副作用);给出核心模式语法与规则;列出反模式与务实边界,如优先用 is 类型提升、合并可空类型分支、保留快速失败校验、避免单分支或布尔 switch、避免无谓对象解构、避免对独立标量用 if-case。
使用方式:先识别被求值的数据结构(JSON、List/路径段、Record、类、枚举),选择 switch 构造,定义所需模式,用变量模式提取数据,必要时加 when 守卫,用通配符或默认分支处理未匹配情况,运行 dart analyze 检查穷尽性与死代码。工作流包含两个反馈循环:静态穷尽性检查与运行时 Map/JSON 模式验证。
适用场景:多态 JSON 反序列化(判别联合)、嵌套 JSON 校验与可选字段、List 与路径段解构、sealed class 代数数据类型、变量交换与解构、守卫子句与逻辑或。
限制:dart analyze 无法静态验证动态 Map<String, dynamic> 的键;Map 模式按 containsKey 语义匹配,键被省略时即使类型可空也会匹配失败,可选键需从已匹配子映射直接提取;未匹配或畸形结构应显式抛出 FormatException 而非静默忽略。示例文件路径为 examples/json_patterns.dart,具体内容暂未提供。