Null Assertion Operator
Part of the Fundamentals section of Coddy's Dart journey — lesson 80 of 94.
The null assertion operator (!) tells Dart that a nullable variable is definitely not null at that point in the code. It forces Dart to treat a nullable type as non-nullable.
Create a nullable string variable:
String? name = 'Dart';
Use the null assertion operator to treat it as non-nullable:
String nonNullableName = name!;
print(nonNullableName);
After executing the above code, the output will be:
DartBe careful! If the variable is actually null, your program will crash:
String? language = null;
// String nonNullable = language!; // This would crash at runtime
Challenge
BeginnerIn this challenge, you'll practice using the Null Assertion Operator (!) in Dart. This operator tells Dart that a nullable variable is definitely not null at a specific point in your code.
Complete the code below to use the null assertion operator to convert the nullable username variable to a non-nullable string that can be assigned to displayName.
Expected output:
Welcome, DartLearner!Cheat sheet
The null assertion operator (!) tells Dart that a nullable variable is definitely not null at that point in the code. It forces Dart to treat a nullable type as non-nullable.
String? name = 'Dart';
String nonNullableName = name!;
print(nonNullableName); // Output: Dart
Warning: If the variable is actually null, your program will crash at runtime:
String? language = null;
// String nonNullable = language!; // This would crash
Try it yourself
void main() {
// This nullable String variable already has a non-null value
String? username = 'DartLearner';
// TODO: Use the null assertion operator (!) to convert username
// from a nullable String to a non-nullable String
// so it can be assigned to displayName
String displayName;
// This will display the welcome message
print('Welcome, $displayName!');
}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