Bird
Raised Fist0
Kotlinprogramming~10 mins

Elvis operator deep usage 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 assign a default value using the Elvis operator.

Kotlin
val name: String? = null
val displayName = name [1] "Unknown"
Drag options to blanks, or click blank then click option'
A?.
B==
C!!
D?:
Attempts:
3 left
💡 Hint
Common Mistakes
Using !! instead of ?: causes a crash if the value is null.
Using ?. only safely accesses properties but doesn't provide a default.
2fill in blank
medium

Complete the code to safely get the length of a nullable string or return 0 using the Elvis operator.

Kotlin
val text: String? = null
val length = text?.length [1] 0
Drag options to blanks, or click blank then click option'
A?:
B?.
C!!
D==
Attempts:
3 left
💡 Hint
Common Mistakes
Using !! causes an exception if text is null.
Using == is a comparison, not a fallback.
3fill in blank
hard

Fix the error in the code by completing the Elvis operator usage to provide a default value.

Kotlin
fun getUserName(user: User?): String {
    return user?.name [1] "Guest"
}
Drag options to blanks, or click blank then click option'
A!!
B?:
C?.
D==
Attempts:
3 left
💡 Hint
Common Mistakes
Using !! causes a crash if user or name is null.
Using ?. does not provide a default value.
4fill in blank
hard

Fill both blanks to use the Elvis operator and safe call to get the length or return -1.

Kotlin
fun getLength(str: String?): Int {
    return str[1]length [2] -1
}
Drag options to blanks, or click blank then click option'
A?.
B?:
C!!
D==
Attempts:
3 left
💡 Hint
Common Mistakes
Using !! can cause exceptions if str is null.
Using == is a comparison, not a fallback.
5fill in blank
hard

Fill all three blanks to chain safe calls and Elvis operators to get a nested property or default.

Kotlin
fun getCountry(user: User?): String {
    return user[1]address[2]country [3] "Unknown"
}
Drag options to blanks, or click blank then click option'
A?.
B?:
C!!
D==
Attempts:
3 left
💡 Hint
Common Mistakes
Using !! can cause crashes if any property is null.
Using == is a comparison, not a fallback.

Practice

(1/5)
1.

What does the Elvis operator ?: do in Kotlin?

easy
A. Checks if two values are equal.
B. Returns the left value if it is not null; otherwise returns the right value.
C. Converts a value to a nullable type.
D. Throws an exception if the left value is null.

Solution

  1. Step 1: Understand the Elvis operator purpose

    The Elvis operator ?: is used to provide a default value when the left side is null.
  2. Step 2: Analyze the behavior

    If the left value is not null, it returns that value; otherwise, it returns the right value.
  3. Final Answer:

    Returns the left value if it is not null; otherwise returns the right value. -> Option B
  4. Quick Check:

    Elvis operator returns left if not null else right [OK]
Hint: Elvis operator picks left if not null, else right [OK]
Common Mistakes:
  • Thinking it compares two values
  • Assuming it throws exceptions
  • Confusing it with null checks
2.

Which of the following is the correct syntax to use the Elvis operator in Kotlin?

val result = value1 ??: value2
easy
A. val result = value1 ?: value2
B. val result = value1 ? value2
C. val result = value1 :: value2
D. val result = value1 ?:: value2

Solution

  1. Step 1: Identify the correct Elvis operator syntax

    The Elvis operator in Kotlin is written as ?: without spaces.
  2. Step 2: Match the syntax with options

    val result = value1 ?: value2 uses ?: correctly, while others use invalid or incorrect symbols.
  3. Final Answer:

    val result = value1 ?: value2 -> Option A
  4. Quick Check:

    Elvis operator syntax is ?: [OK]
Hint: Elvis operator is always ?: with no spaces [OK]
Common Mistakes:
  • Using single question mark ? instead of ?:
  • Using double colon :: by mistake
  • Adding extra colons or spaces
3.

What is the output of the following Kotlin code?

val a: String? = null
val b: String? = "Hello"
val c: String? = null

val result = a ?: b ?: c ?: "Default"
println(result)
medium
A. Hello
B. null
C. Default
D. Compilation error

Solution

  1. Step 1: Evaluate the chained Elvis operators

    Variable a is null, so Elvis operator moves to b. b is "Hello", which is not null.
  2. Step 2: Determine the final value

    Since b is not null, result is assigned "Hello" and the rest is ignored.
  3. Final Answer:

    Hello -> Option A
  4. Quick Check:

    Chained Elvis picks first non-null: Hello [OK]
Hint: Chained Elvis returns first non-null value [OK]
Common Mistakes:
  • Assuming it returns null if first is null
  • Ignoring chaining and picking last value
  • Thinking it causes a compile error
4.

Identify the error in this Kotlin code snippet using the Elvis operator:

val x: String? = null
val y: String = x ?: null
medium
A. Elvis operator cannot be used with nullable types
B. No error, code is correct
C. Variable x should not be nullable
D. Cannot assign null to non-nullable type String

Solution

  1. Step 1: Analyze variable types and assignment

    Variable y is declared as non-nullable String, but x ?: null can be null.
  2. Step 2: Understand Kotlin's null safety rules

    Assigning null to a non-nullable type causes a compilation error.
  3. Final Answer:

    Cannot assign null to non-nullable type String -> Option D
  4. Quick Check:

    Non-nullable cannot hold null [OK]
Hint: Non-nullable vars cannot be assigned null [OK]
Common Mistakes:
  • Thinking Elvis operator changes nullability
  • Assuming nullable can be assigned to non-nullable
  • Ignoring Kotlin's strict null safety
5.

Given the following Kotlin code, what will be the output?

fun getName(user: Map): String {
    return user["firstName"] ?: user["nickname"] ?: user["lastName"] ?: "Anonymous"
}

val user1 = mapOf("firstName" to null, "nickname" to null, "lastName" to "Smith")
println(getName(user1))
hard
A. Anonymous
B. Compilation error
C. Smith
D. null

Solution

  1. Step 1: Evaluate the map values in order

    firstName and nickname are null, so Elvis operator moves to lastName, which is "Smith".
  2. Step 2: Determine the returned value

    Since lastName is not null, the function returns "Smith".
  3. Final Answer:

    Smith -> Option C
  4. Quick Check:

    Elvis chain returns first non-null: Smith [OK]
Hint: Elvis chains pick first non-null map value [OK]
Common Mistakes:
  • Assuming it returns Anonymous despite lastName present
  • Confusing null with string "null"
  • Thinking map access causes error
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