Branch Control Flow

1. Basic if / if-else Branching Execution Output You can also use if alone Or simply use if else 2. if-case Pattern Matching Branch (Dart 3.0+) Execution Output 2: if-case …

Loops

1. Standard for Loop Syntax: for(initialization; condition; iterator) { loop body } 1: Basic String Concatenation This loop runs from 0 to 5 (exclusive), meaning i takes values 0 through …

Pattern

1. Logical OR Pattern A || B Matches any single subpattern; all branches must define an identical set of variables. 2. Logical AND Pattern A && B Both subpatterns must …

Dart Pattern Matching Guide

Dart Patterns are only available starting from Dart version 3.0 or higher 1. Core Purpose of Patterns Patterns form an independent syntax category in Dart, sitting alongside statements and expressions. …

Sound Type System

Dart Sound Type System Core Definition Dart is a sound statically typed language secured by dual safeguards: static compile-time checks plus runtime validation. At runtime, the value stored in any …

typedef (Type Aliases)

Definition Purpose: The typedef keyword creates short alternate names for existing data types, also known as type aliases. Full support for all general types landed in Dart 2.13; prior versions …

Dart Generics

If you check the API documentation for the basic array type List, you will find its actual type is List<E>. Angle brackets like <…> denote a generic type (parameterized type) …

Dart Collection

Dart ships with three native collection types: List, Set, and Map.

Generic type constraints can be applied to restrict the data types stored inside each collection via Generics.

Dart Record

A Record is an anonymous, immutable, composite aggregate type that bundles multiple pieces of data of different types into a single object. Here are its core differences compared to List / Set / Map:

Dart Built-in types

Every variable in Dart is fundamentally an object (an instance of a class). You can quickly create instances using literals, or initialize them by calling their corresponding constructors.

Dart Comments

Dart supports three types of comments in total: single-line comments, multi-line comments, and documentation comments. The compiler ignores regular text inside comments, and only documentation comments can be used to generate code documentation.

Dart Spread operators

Spread Operators: … and …?

They evaluate a collection expression, unpack all its individual elements, and insert them directly into another collection literal (List, Set, or Map).

Dart Cascade notation

It lets you chain multiple property assignments and method calls on the same object consecutively. This eliminates the need for temporary variables and produces cleaner, more readable code.

Dart Conditional expressions

The conditional operators covered here are distinct from conditional statements such as if-else. They refer to the ternary operator and null-coalescing operator.

Two Types of Conditional Operators

Dart Logical operators

Logical operators only operate on boolean values (true / false) to evaluate whether a condition holds true. They yield exactly two possible results: true (the condition is satisfied) and false (the condition fails).

Dart Type test operators

The check obj is T evaluates to true when the object obj implements or inherits type T — this includes parent classes, interfaces, and nullable variants of the target type.

Arithmetic operators

Basic Binary Arithmetic Operators These operators perform calculations between two numeric values, with a total of seven variants, covering standard four arithmetic operations, integer division, modulo, and unary negation operators. …