Null Safety
Late Initialization
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);
}
greeting ← <uninitialized>
1void main() {2 late String greeting;3 greeting = 'Hello, Ada!';values this step<uninitialized>greetinggreeting ← Hello, Ada!
2late String greeting;3greeting = 'Hello, Ada!';4print(greeting);values this step<uninitialized> → Hello, Ada!greetingprint(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`.