Nullable Types
Part of the Fundamentals section of Coddy's Dart journey — lesson 78 of 94.
Nullable types in Dart are declared by adding a question mark (?) after the type name. This tells Dart that a variable can hold either a value of that type or null.
Declare nullable variables of different types:
String? name;
int? age;
bool? isActive;
double? price;These variables can be assigned values or null:
name = 'Dart';
age = null;
isActive = true;
price = null;
print(name);
print(age);
print(isActive);
print(price);After executing the above code, the output will be:
Dart
null
true
nullChallenge
BeginnerIn this challenge, you'll practice working with nullable types in Dart. A nullable type is declared by adding a question mark (?) after the type name, allowing the variable to hold either a value or null.
Complete the code to check if the username variable is null. If it is, print "No username provided". If it's not null, print "Username: " followed by the username value.
Cheat sheet
Nullable types in Dart are declared by adding a question mark (?) after the type name, allowing variables to hold either a value of that type or null:
String? name;
int? age;
bool? isActive;
double? price;Nullable variables can be assigned values or null:
name = 'Dart';
age = null;
isActive = true;
price = null;Try it yourself
void main() {
// This variable can be null because of the ? after String
String? username = null;
// TODO: Check if username is null
// If it is null, print "No username provided"
// If it's not null, print "Username: " followed by the username value
// Later in the program, username gets a value
username = "DartLearner";
// TODO: Check username again using the same condition
}
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