Bird
Raised Fist0
Kotlinprogramming~10 mins

Nullable types with ? suffix in Kotlin - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare a nullable String variable.

Kotlin
var name: String[1] = null
Drag options to blanks, or click blank then click option'
A?
B!
C(no suffix)
D*
Attempts:
3 left
💡 Hint
Common Mistakes
Using an exclamation mark instead of a question mark.
Leaving the type non-nullable and assigning null.
2fill in blank
medium

Complete the code to safely access the length of a nullable String.

Kotlin
val length = name[1].length
Drag options to blanks, or click blank then click option'
A!!
B?.
C?
D.
Attempts:
3 left
💡 Hint
Common Mistakes
Using !! which throws an exception if null.
Using just a dot which causes a compile error on nullable types.
3fill in blank
hard

Fix the error in the code to assign a nullable String to a non-nullable variable.

Kotlin
val nonNullName: String = name[1]
Drag options to blanks, or click blank then click option'
A!!
B?.toString()
C?
D?: ""
Attempts:
3 left
💡 Hint
Common Mistakes
Using safe call ?. which returns nullable type.
Using ?: "" which is for providing default values.
4fill in blank
hard

Fill both blanks to create a map of words to their lengths only if length is greater than 3.

Kotlin
val lengths = mapOf([1] to [2]).filter { it.value > 3 }
Drag options to blanks, or click blank then click option'
A"hello"
B"hello".length
C"hi"
D"hi".length
Attempts:
3 left
💡 Hint
Common Mistakes
Using a word shorter than 4 characters which will be filtered out.
Using the length property incorrectly.
5fill in blank
hard

Fill all three blanks to create a nullable variable, check if it is null, and provide a default value.

Kotlin
val input: String[1] = null
val result = input [2] "default"
println(result[3])
Drag options to blanks, or click blank then click option'
A?
B?:
C?.length
D!!
Attempts:
3 left
💡 Hint
Common Mistakes
Not marking the variable as nullable.
Using !! which throws exception if null.
Not using safe call operator before accessing length.

Practice

(1/5)
1. What does adding a ? after a type in Kotlin mean?
easy
A. The variable is immutable.
B. The variable can hold a null value.
C. The variable is a constant.
D. The variable is a function.

Solution

  1. Step 1: Understand Kotlin type suffix

    In Kotlin, adding ? after a type means the variable can hold null.
  2. Step 2: Compare with non-nullable types

    Without ?, variables cannot be null and will cause errors if assigned null.
  3. Final Answer:

    The variable can hold a null value. -> Option B
  4. Quick Check:

    Nullable type = variable can be null [OK]
Hint: Remember: ? means nullable type in Kotlin [OK]
Common Mistakes:
  • Thinking ? makes variable immutable
  • Confusing ? with constant declaration
  • Assuming ? means function type
2. Which of the following is the correct syntax to declare a nullable String variable in Kotlin?
easy
A. var name: String?
B. var name: ?String
C. var name: String!
D. var name: nullable String

Solution

  1. Step 1: Recall Kotlin nullable syntax

    Kotlin uses ? after the type name to mark it nullable, e.g., String?.
  2. Step 2: Check each option

    var name: String? uses String? correctly. Options A, B, and D use invalid syntax.
  3. Final Answer:

    var name: String? -> Option A
  4. Quick Check:

    Nullable syntax = type followed by ? [OK]
Hint: Put ? right after the type name for nullable [OK]
Common Mistakes:
  • Placing ? before the type
  • Using ! instead of ?
  • Writing 'nullable' keyword explicitly
3. What will be the output of this Kotlin code?
var text: String? = null
println(text?.length ?: "No length")
medium
A. 0
B. null
C. No length
D. Throws NullPointerException

Solution

  1. Step 1: Understand safe call and Elvis operator

    text?.length safely accesses length if text is not null; else returns null. The Elvis operator ?: provides "No length" if left side is null.
  2. Step 2: Evaluate given code

    Since text is null, text?.length is null, so the expression prints "No length".
  3. Final Answer:

    No length -> Option C
  4. Quick Check:

    Safe call + Elvis = fallback value [OK]
Hint: Safe call ?. returns null safely; ?: provides default [OK]
Common Mistakes:
  • Expecting NullPointerException on null safe call
  • Thinking null?.length returns 0
  • Ignoring Elvis operator fallback
4. Identify the error in this Kotlin code snippet:
var number: Int? = 10
var result: Int = number + 5
medium
A. Variable 'result' should be nullable.
B. Variable 'number' cannot be nullable.
C. Missing semicolon after declaration.
D. Cannot add Int? and Int directly.

Solution

  1. Step 1: Check type compatibility

    number is nullable Int?, but result expects non-null Int. Adding nullable and non-null directly is not allowed.
  2. Step 2: Understand Kotlin's null safety

    You must safely unwrap number before adding, e.g., using number ?: 0 or safe call.
  3. Final Answer:

    Cannot add Int? and Int directly. -> Option D
  4. Quick Check:

    Nullable + non-null Int needs safe unwrap [OK]
Hint: Nullable Int can't be used directly in arithmetic [OK]
Common Mistakes:
  • Assuming nullable Int can be used like Int
  • Ignoring need for safe call or Elvis operator
  • Thinking semicolon is required in Kotlin
5. You have a nullable list of nullable Strings: val items: List?. How do you safely print the length of the first item or print 0 if the list or first item is null?
hard
A. println(items?.get(0)?.length ?: 0)
B. println(items[0].length)
C. println(items!!.get(0)!!.length)
D. println(items?.get(0).length ?: 0)

Solution

  1. Step 1: Analyze nullable types

    items can be null, and its elements can be null. So both list and first item need safe calls.
  2. Step 2: Use safe calls and Elvis operator

    items?.get(0)?.length ?: 0 safely accesses first item length or returns 0 if null.
  3. Final Answer:

    println(items?.get(0)?.length ?: 0) -> Option A
  4. Quick Check:

    Safe calls chain + fallback = safe nullable access [OK]
Hint: Chain ?. for each nullable and use ?: for default [OK]
Common Mistakes:
  • Using !! which throws exception if null
  • Missing safe call on first item
  • Assuming list or item can't be null
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard