Bird
Raised Fist0
Kotlinprogramming~5 mins

Accessing elements safely in Kotlin - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the safe call operator ?. do in Kotlin?
The safe call operator ?. lets you access a property or call a method on an object only if it is not null. If the object is null, it returns null instead of throwing an error.
Click to reveal answer
beginner
How can you provide a default value when accessing a nullable variable in Kotlin?
You can use the Elvis operator ?: to provide a default value if the expression on the left is null. For example: val length = name?.length ?: 0 means if name is null, length will be 0.
Click to reveal answer
intermediate
What happens if you use the not-null assertion operator !! on a null value?
Using !! tells Kotlin you are sure the value is not null. If the value is actually null, the program throws a NullPointerException and crashes.
Click to reveal answer
beginner
How do you safely access an element in a list by index in Kotlin?
You can use the getOrNull(index) function. It returns the element at the given index or null if the index is out of bounds, preventing crashes.
Click to reveal answer
beginner
Why is it important to access elements safely in Kotlin?
Accessing elements safely helps avoid program crashes caused by null values or invalid indexes. It makes your code more stable and easier to maintain.
Click to reveal answer
What does val length = name?.length ?: 0 do if name is null?
ASets length to null
BThrows an error
CSets length to 0
DSets length to -1
Which operator lets you call a method only if the object is not null?
A?.
B?:
C!!
D==
What does list.getOrNull(5) return if the list has only 3 elements?
AThe last element
BThe 5th element
CThrows an exception
Dnull
What happens if you use !! on a null variable?
AReturns null
BThrows NullPointerException
CReturns default value
DIgnores null and continues
Why should you use safe access methods in Kotlin?
ATo avoid crashes from null or invalid indexes
BTo ignore errors silently
CTo make code shorter
DTo make code run faster
Explain how the safe call operator and Elvis operator work together to access nullable elements safely in Kotlin.
Think about how to avoid null pointer errors when accessing properties.
You got /3 concepts.
    Describe how to safely get an element from a list by index in Kotlin and why it is important.
    Consider what happens if you ask for an element outside the list range.
    You got /4 concepts.

      Practice

      (1/5)
      1.

      What does the Kotlin expression map[key] ?: "default" do?

      easy
      A. Removes the key from the map if it exists.
      B. Returns the value for key if it exists, otherwise returns "default".
      C. Throws an error if key is not in the map.
      D. Always returns "default" regardless of key.

      Solution

      1. Step 1: Understand map access with []

        Accessing map[key] returns the value if key exists, or null if it doesn't.
      2. Step 2: Use the Elvis operator ?: for fallback

        The expression ?: "default" means if the left side is null, return "default" instead.
      3. Final Answer:

        Returns the value for key if it exists, otherwise returns "default". -> Option B
      4. Quick Check:

        map[key] ?: default = safe access with fallback [OK]
      Hint: Use ?: to provide a default when key might be missing [OK]
      Common Mistakes:
      • Thinking it throws an error if key is missing
      • Assuming it always returns default
      • Confusing with removing keys
      2.

      Which of the following is the correct Kotlin syntax to safely get the element at index 2 from a list myList, returning -1 if the index is out of bounds?

      easy
      A. myList.getOrNull(2) ?: -1
      B. myList[2] ?: -1
      C. myList.get(2) ?: -1
      D. myList.getOrElse(2, -1)

      Solution

      1. Step 1: Understand safe list access methods

        myList.getOrNull(2) returns the element at index 2 or null if out of bounds.
      2. Step 2: Use Elvis operator for default

        ?: -1 returns -1 if getOrNull returns null.
      3. Final Answer:

        myList.getOrNull(2) ?: -1 -> Option A
      4. Quick Check:

        getOrNull + ?: = safe get with fallback [OK]
      Hint: Use getOrNull(index) ?: default for safe list access [OK]
      Common Mistakes:
      • Using myList[2] which throws exception if index invalid
      • Using get(2) which throws exception if index invalid
      • Confusing getOrElse syntax
      3.

      What is the output of this Kotlin code?

      val map = mapOf("a" to 1, "b" to 2)
      println(map["c"] ?: 0)
      medium
      A. null
      B. 2
      C. Exception thrown
      D. 0

      Solution

      1. Step 1: Check map access for key "c"

        Key "c" does not exist in the map, so map["c"] returns null.
      2. Step 2: Apply Elvis operator

        ?: 0 returns 0 because the left side is null.
      3. Final Answer:

        0 -> Option D
      4. Quick Check:

        map[missingKey] ?: default = default [OK]
      Hint: Missing keys return null, use ?: for default [OK]
      Common Mistakes:
      • Expecting null to print instead of default
      • Thinking exception is thrown
      • Confusing existing key values
      4.

      Identify the error in this Kotlin code snippet and choose the corrected version:

      val list = listOf(10, 20, 30)
      val value = list[5] ?: -1
      println(value)
      medium
      A. val value = list.get(5) ?: -1
      B. val value = list[5]
      C. val value = list.getOrNull(5) ?: -1
      D. val value = list.getOrElse(5, -1)

      Solution

      1. Step 1: Understand list access with []

        Using list[5] throws an IndexOutOfBoundsException because index 5 is out of range.
      2. Step 2: Use safe access method

        list.getOrNull(5) returns null if index is invalid, so combined with ?: -1 it safely returns -1.
      3. Final Answer:

        val value = list.getOrNull(5) ?: -1 -> Option C
      4. Quick Check:

        Use getOrNull + ?: to avoid exceptions [OK]
      Hint: Replace [] with getOrNull + ?: for safe index access [OK]
      Common Mistakes:
      • Using [] which throws exception if index invalid
      • Using get(5) which throws exception
      • Confusing getOrElse syntax
      5.

      You have a map val scores = mapOf("Alice" to 90, "Bob" to 85) and a list val bonuses = listOf(5, 10). You want to safely get Bob's score and the bonus at index 2, returning 0 if missing, then sum them. Which code correctly does this?

      hard
      A. val total = (scores["Bob"] ?: 0) + (bonuses.getOrNull(2) ?: 0)
      B. val total = (scores.getOrNull("Bob") ?: 0) + (bonuses.getOrNull(2) ?: 0)
      C. val total = (scores["Bob"] ?: 0) + (bonuses[2] ?: 0)
      D. val total = (scores["Bob"] ?: 0) + bonuses.get(2)

      Solution

      1. Step 1: Access map value safely

        scores["Bob"] ?: 0 safely gets Bob's score or 0 if missing.
      2. Step 2: Access list element safely

        bonuses.getOrNull(2) ?: 0 safely gets bonus at index 2 or 0 if out of bounds.
      3. Step 3: Sum the two values

        Adding these two safe values gives the total without errors.
      4. Final Answer:

        val total = (scores["Bob"] ?: 0) + (bonuses.getOrNull(2) ?: 0) -> Option A
      5. Quick Check:

        Safe map + safe list access with ?: for default [OK]
      Hint: Use ?: with map and getOrNull for list to avoid errors [OK]
      Common Mistakes:
      • Using bonuses[2] which throws exception if index invalid
      • Using getOrNull on map which is invalid
      • Not providing default fallback
      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