Null Safety
Nullable Types
String?
A ? after a type marks the value as nullable. Without ?, the variable can never be null.
Program
Play the program to assign and print a nullable name.
nullable.dart
Replay: real traced execution (multi-file project)
void main() {
String? name;
print(name);
name = 'Ada';
print(name);
}
name ← null
1void main() {2 String? name;3 print(name);values this stepnullnameprint(name);
2String? name;3print(name);4name = 'Ada';outputnullvalues this stepnullnamename ← Ada
3print(name);4name = 'Ada';5print(name);values this stepnull → Adanameprint(name);
4 name = 'Ada';5 print(name);6}outputAdavalues this stepAdaname
String?
`?` makes the variable's type nullable.
default null
An uninitialized nullable starts as `null`.
non-nullable
Without `?`, the compiler rejects `null` assignments.