late defers the first assignment of a non-nullable variable. Reading it before assignment throws at runtime.

Program

Play the program to assign a late greeting before reading it.

late_init.dart
Replay: real traced execution (multi-file project)
void main() {
  late String greeting;
  greeting = 'Hello, Ada!';
  print(greeting);
}
  1. greeting ← <uninitialized>

    1void main() {2  late String greeting;3  greeting = 'Hello, Ada!';
    values this step<uninitialized>greeting
  2. greeting ← Hello, Ada!

    2late String greeting;3greeting = 'Hello, Ada!';4print(greeting);
    values this step<uninitialized> Hello, Ada!greeting
  3. print(greeting);

    3  greeting = 'Hello, Ada!';4  print(greeting);5}
    outputHello, Ada!
    values this stepHello, Ada!greeting
late Promise to assign before reading.
non-nullable Lets a non-nullable be declared without an initial value.
runtime check Reading before assignment throws `LateInitializationError`.