Backend 1,207 installs

Implementing Dart Patterns

by dart-lang/skills

Use switch expressions and pattern matching where appropriate

Skill content

Implementing Dart Patterns

Contents

- Pattern Selection Strategy

- Switch Statements vs. Expressions

- Core Pattern Implementations

- Workflows

- Examples

Pattern Selection Strategy

Apply specific pattern types based on the data structure and desired outcome. Follow these conditional guidelines:

- If validating and extracting from deserialized data (e.g., JSON): Use Map and List patterns to simultaneously check structure and destructure key-value pairs.

- If handling multiple return values: Use Record patterns to destructure fields directly into local variables.

- If executing type-specific behavior (Algebraic Data Types): Use Object patterns combined with sealed classes to ensure exhaustiveness.

- If matching numeric ranges or conditions: Use Relational (>=, <=) and Logical-and (&&) patterns.

- If multiple cases share logic: Use Logical-or (||) patterns to share a single case body or guard clause.

- If ignoring specific values: Use the Wildcard pattern (_) or a non-matching Rest element (...) in collections.