Null-aware Operator
Part of the Fundamentals section of Coddy's Dart journey — lesson 28 of 94.
The null-aware operator (??) returns the left expression if it's not null, otherwise returns the right expression.
void main() {
String? name = 'Dart';
String displayName = name ?? 'Guest';
print('Hello, $displayName!');
}void main() {
String? name = null;
String displayName = name ?? 'Guest';
print('Hello, $displayName!');
}void main() {
int? score; // No initial value, defaults to null
int displayScore = score ?? 0;
print('Your score: $displayScore');
// Later in the program, score gets a value
score = 100;
displayScore = score ?? 0;
print('Your updated score: $displayScore');
}Challenge
EasyCreate a program that demonstrates the null-aware operator (??) in Dart:
- Declare a nullable String variable named
usernameand set it tonull - Declare a nullable int variable named
userAgeand set it tonull - Use the null-aware operator to assign a default value of
"Guest"to a new variabledisplayNameifusernameis null - Use the null-aware operator to assign a default value of
18to a new variabledisplayAgeifuserAgeis null - Print the values with the EXACT following format:
Username: Guest (default value used)
Age: 18 (default value used)Then:
- Update
usernameto"DartUser" - Update
userAgeto25 - Repeat steps 3 and 4 with the updated values
- Print the values with the EXACT following format:
Username: DartUser (original value used)
Age: 25 (original value used)Cheat sheet
The null-aware operator (??) returns the left expression if it's not null, otherwise returns the right expression.
String? name = null;
String displayName = name ?? 'Guest'; // Returns 'Guest' since name is null
int? score = 100;
int displayScore = score ?? 0; // Returns 100 since score is not nullTry it yourself
void main() {
// Declare nullable variables
String? username = _;
int? userAge = _;
// Use null-aware operator for default values
String displayName = username ?? _;
int displayAge = userAge ?? _;
// Print initial values
print("Username: $displayName (default value used)");
print("Age: $displayAge (default value used)");
// Update variables
username = _;
userAge = _;
// Use null-aware operator again
displayName = username _ "Guest";
displayAge = userAge _ 18;
// Print updated values
print("Username: $displayName (original value used)");
print("Age: $displayAge (original value used)");
}This lesson includes a short quiz. Start the lesson to answer it and track your progress.
All lessons in Fundamentals
4Operators Part 2
Comparison OperatorsLogical ANDLogical ORLogical NOTType Test OperatorsRecap - Making Comparisons7Working with Strings
String ConcatenationString InterpolationMulti-line StringsString PropertiesBasic String Methods10Collections - Maps Basics
What are Maps?Creating a MapAccessing Values by KeyKey-Value PairsGetting Map SizeGetting KeysGetting ValuesChecking if a Key Exists13Null Safety In Depth
Understanding NullNullable TypesNon-Nullable TypesNull Assertion OperatorLate InitializationRecap - Handling Null Safely16Fundamentals Challenges
Challenge: List of calculationChallenge: Sum of numbersChallenge: Find product2Variables and Basic Data Types
What are Variables?StringsIntegers (int)Doubles (double)Booleans (bool)Type Inference with 'var'Final VariablesConstant VariablesNaming ConventionsBasic Null SafetyRecap - Declaring Variables8Control Flow - Loops
The 'for' LoopThe 'while' LoopThe 'do-while' LoopUsing 'break' in LoopsUsing 'continue' in LoopsRecap - Repeating Code3Operators Part 1
Arithmetic OperatorsInteger DivisionModulo OperatorIncrement and DecrementAssignment ShortcutsRecap - Simple Calculations6Control Flow - Decision Making
The 'if' StatementThe 'else' StatementThe 'else if' StatementRecap - Simple DecisionsNested 'if' StatementsThe 'switch' Statement9Collections - Lists Basics
What are Lists?Creating a ListAccessing by IndexGetting List LengthAdding ElementsRemoving ElementsChecking if a List is EmptyIterating Over a List12Functions Advanced
Optional Positional ParametersNamed ParametersRequired Named ParametersDefault Parameter ValuesRecap - Function Parameters15Project: Simple Calculator
Setting UpDeclaring Number