Null safety means the app knows which variables can be null and which cannot, helping to avoid crashes caused by unexpected null values.
Click to reveal answer
beginner
How do you declare a variable that can hold a null value in Dart?
Add a question mark (?) after the type. For example, String? name; means name can be null.
Click to reveal answer
intermediate
What happens if you try to use a nullable variable without checking for null?
The Dart compiler will show an error, preventing you from running code that might cause a crash due to null values.
Click to reveal answer
beginner
Explain the difference between String and String? in Dart.
String cannot be null, so it always has a value. String? can be null, so you must check before using it.
Click to reveal answer
intermediate
What is the purpose of the null assertion operator ! in Dart?
It tells Dart you are sure the variable is not null at that point, so it can be used as a non-null value. Use carefully to avoid runtime errors.
Click to reveal answer
Which symbol marks a variable as nullable in Dart?
A?
B!
C*
D&
✗ Incorrect
The question mark (?) after a type means the variable can hold null.
What will happen if you try to assign null to a non-nullable variable?
AIt works fine
BCompile-time error
CRuntime error
DVariable becomes nullable automatically
✗ Incorrect
Dart prevents assigning null to non-nullable variables at compile time.
How do you tell Dart you are sure a nullable variable is not null?
AUse the ! operator
BUse the ? operator
CUse the * operator
DUse the & operator
✗ Incorrect
The null assertion operator (!) tells Dart the value is not null.
Which of these is a correct nullable variable declaration?
Aint age?;
Bint age;
C?int age;
Dint? age;
✗ Incorrect
The ? goes after the type to mark it nullable.
Why is null safety important in Flutter apps?
ATo allow all variables to be null
BTo make apps run faster
CTo prevent app crashes from null errors
DTo remove all variables
✗ Incorrect
Null safety helps avoid crashes caused by unexpected null values.
Explain how null safety helps prevent errors in Flutter apps.
Think about how the app knows if a variable can be null or not.
You got /3 concepts.
Describe how to declare and use a nullable variable safely in Dart.
Remember the question mark and null checks.
You got /3 concepts.
Practice
(1/5)
1. What does the ? symbol mean when used after a type in Flutter null safety?
easy
A. It marks the variable as a constant.
B. It means the variable is always non-null.
C. It means the variable can hold a null value.
D. It makes the variable read-only.
Solution
Step 1: Understand the ? usage in Flutter
The ? after a type means the variable can be null, allowing it to hold either a value or null.
Step 2: Compare with non-nullable types
Without ?, variables must always have a non-null value, so ? explicitly allows null.
Final Answer:
It means the variable can hold a null value. -> Option C
Quick Check:
? means nullable = A [OK]
Hint: Remember: ? means nullable, can hold null [OK]
Common Mistakes:
Thinking ? makes variable constant
Confusing ? with non-nullable
Assuming ? means read-only
2. Which of the following is the correct way to declare a nullable integer variable in Flutter?
easy
A. int? number;
B. int number?;
C. nullable int number;
D. int number = null;
Solution
Step 1: Recall correct nullable syntax
In Flutter, to declare a nullable type, place ? immediately after the type name, like int?.
Step 2: Check each option
int? number; uses int? number; which is correct. int number?; places ? after variable name, which is invalid. nullable int number; uses a non-existent keyword. int number = null; assigns null to a non-nullable type, causing error.
Final Answer:
int? number; -> Option A
Quick Check:
Nullable type syntax = int? [OK]
Hint: Put ? right after type to make nullable [OK]
Common Mistakes:
Placing ? after variable name
Using non-existent keywords like 'nullable'
Assigning null to non-nullable without ?
3. What will be the output of this Flutter code snippet?
int? a;
int b = a ?? 5;
print(b);
medium
A. null
B. 5
C. 0
D. Compilation error
Solution
Step 1: Understand variable initialization
Variable a is nullable and not initialized, so it is null.
Step 2: Evaluate the null-coalescing operator ??
The expression a ?? 5 means if a is null, use 5 instead.
Step 3: Assign and print value
Since a is null, b gets 5, so print(b) outputs 5.
Final Answer:
5 -> Option B
Quick Check:
?? gives default if null = 5 [OK]
Hint: Use ?? to provide default when null [OK]
Common Mistakes:
Assuming uninitialized nullable is zero
Thinking ?? returns null
Expecting compilation error for nullable without init
4. Identify the error in this Flutter code snippet:
String? name;
print(name.length);
medium
A. Error: Cannot access property on nullable without check
B. No error, prints null
C. Error: Missing semicolon
D. Error: Variable 'name' not declared
Solution
Step 1: Analyze nullable variable usage
Variable name is nullable and not initialized, so it is null.
Step 2: Accessing property on nullable
Accessing name.length without null check causes error because name might be null.
Step 3: Correct usage
Use null-aware operator like name?.length or check for null before accessing.
Final Answer:
Error: Cannot access property on nullable without check -> Option A
Quick Check:
Access nullable property without check = error [OK]
Hint: Use ?. or check null before property access [OK]
Common Mistakes:
Assuming nullable property access is safe
Ignoring null checks
Confusing syntax errors with runtime errors
5. Given a nullable list of integers List<int>? numbers;, which code safely sums all elements or returns 0 if the list is null?
hard
A. int sum = numbers!.reduce((a, b) => a + b);
B. int sum = numbers.reduce((a, b) => a + b);
C. int sum = numbers == null ? null : numbers.reduce((a, b) => a + b);
D. int sum = numbers?.reduce((a, b) => a + b) ?? 0;
Solution
Step 1: Understand nullable list and safe access
Since numbers can be null, accessing methods directly risks error.
Step 2: Analyze each option
int sum = numbers?.reduce((a, b) => a + b) ?? 0; uses ?. to safely call reduce only if numbers is not null, then ?? 0 to default to 0 if null. int sum = numbers.reduce((a, b) => a + b); calls reduce directly, causing error if null. int sum = numbers!.reduce((a, b) => a + b); forces non-null with !, risky if null. int sum = numbers == null ? null : numbers.reduce((a, b) => a + b); returns null instead of int 0, causing type mismatch.
Step 3: Choose safe and correct option
int sum = numbers?.reduce((a, b) => a + b) ?? 0; safely sums or returns 0 if null.
Final Answer:
int sum = numbers?.reduce((a, b) => a + b) ?? 0; -> Option D
Quick Check:
Safe call + default value = int sum = numbers?.reduce((a, b) => a + b) ?? 0; [OK]
Hint: Use ?. with ?? for safe nullable operations [OK]
Common Mistakes:
Calling methods on nullable without safe operator
Using ! without null check
Returning null instead of default value
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.