Bird
Raised Fist0
Kotlinprogramming~10 mins

Type checking with is operator 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 check if the variable obj is a String.

Kotlin
if (obj [1] String) {
    println("It's a string")
}
Drag options to blanks, or click blank then click option'
A==
Bequals
Cinstanceof
Dis
Attempts:
3 left
💡 Hint
Common Mistakes
Using '==' instead of 'is' for type checking.
Using 'instanceof' which is Java syntax, not Kotlin.
2fill in blank
medium

Complete the code to check if value is NOT an Int.

Kotlin
if (value ![1] Int) {
    println("Not an integer")
}
Drag options to blanks, or click blank then click option'
Ais
Attempts:
3 left
💡 Hint
Common Mistakes
Placing the exclamation mark after 'is' instead of before.
Using '!=' instead of '!is' for type checking.
3fill in blank
hard

Fix the error in the code to check if item is a Double.

Kotlin
if (item [1] Double) {
    println("It's a double")
}
Drag options to blanks, or click blank then click option'
A==
Bequals
Cis
Dinstanceof
Attempts:
3 left
💡 Hint
Common Mistakes
Using Java's 'instanceof' instead of Kotlin's 'is'.
Using '==' which compares values, not types.
4fill in blank
hard

Fill both blanks to check if data is a String and print its length.

Kotlin
if (data [1] String) {
    println(data[2]length)
}
Drag options to blanks, or click blank then click option'
Ais
B==
C?.
D!!
Attempts:
3 left
💡 Hint
Common Mistakes
Using '==' instead of 'is' for type checking.
Using '.' or '?.' instead of '!!' which is appropriate after type check.
5fill in blank
hard

Fill all three blanks to check if input is NOT a List and print a message.

Kotlin
if (input [1] [2] [3]) {
    println("Input is not a list")
}
Drag options to blanks, or click blank then click option'
Ais
BList
C)
D!
Attempts:
3 left
💡 Hint
Common Mistakes
Forgetting the exclamation mark to negate the check.
Not closing the if condition with a parenthesis.

Practice

(1/5)
1. What does the is operator do in Kotlin?
easy
A. Checks if a variable is of a specific type
B. Changes the type of a variable
C. Creates a new variable
D. Deletes a variable

Solution

  1. Step 1: Understand the purpose of is operator

    The is operator is used to check if a variable holds a value of a certain type.
  2. Step 2: Differentiate from other options

    It does not change, create, or delete variables; it only checks type.
  3. Final Answer:

    Checks if a variable is of a specific type -> Option A
  4. Quick Check:

    Type check = A [OK]
Hint: Remember: is means 'is this type?' check [OK]
Common Mistakes:
  • Thinking is changes the variable type
  • Confusing is with variable creation
  • Assuming is deletes variables
2. Which of the following is the correct syntax to check if obj is a String in Kotlin?
easy
A. if (obj instanceof String)
B. if (obj is String)
C. if (obj type String)
D. if (obj == String)

Solution

  1. Step 1: Recall Kotlin syntax for type checking

    Kotlin uses is keyword to check types, not instanceof or other keywords.
  2. Step 2: Match the correct syntax

    The correct syntax is if (obj is String).
  3. Final Answer:

    if (obj is String) -> Option B
  4. Quick Check:

    Correct syntax = C [OK]
Hint: Use is keyword, not Java's instanceof [OK]
Common Mistakes:
  • Using Java syntax instanceof in Kotlin
  • Writing obj type String which is invalid
  • Comparing with == instead of type check
3. What will be the output of this Kotlin code?
fun checkType(x: Any) {
    if (x is Int) {
        println(x + 5)
    } else {
        println("Not an Int")
    }
}

checkType(10)
checkType("Hello")
medium
A. Error at runtime
B. 10 Not an Int
C. 15 Hello5
D. 15 Not an Int

Solution

  1. Step 1: Analyze the first call checkType(10)

    10 is an Int, so inside the if block, x + 5 equals 15, printed as "15".
  2. Step 2: Analyze the second call checkType("Hello")

    "Hello" is not an Int, so else block runs printing "Not an Int".
  3. Final Answer:

    15 Not an Int -> Option D
  4. Quick Check:

    Int check prints sum, else prints message = A [OK]
Hint: If is true, use variable as that type inside block [OK]
Common Mistakes:
  • Assuming string "Hello" can be added to 5
  • Expecting runtime error instead of else output
  • Confusing output order
4. Identify the error in this Kotlin code snippet:
fun printLength(obj: Any) {
    if (obj is String) {
        println(obj.length())
    }
}
medium
A. No error, code is correct
B. Missing else block after if
C. Using parentheses with length property
D. Incorrect use of is operator

Solution

  1. Step 1: Check usage of length on String

    In Kotlin, length is a property, not a function, so it should not have parentheses.
  2. Step 2: Confirm other parts are correct

    The is operator is used correctly and else block is optional.
  3. Final Answer:

    Using parentheses with length property -> Option C
  4. Quick Check:

    Property access no parentheses = D [OK]
Hint: Remember: Kotlin properties have no parentheses [OK]
Common Mistakes:
  • Adding parentheses to properties like length
  • Thinking else block is mandatory
  • Misusing is operator syntax
5. Given a list of Any elements, how can you create a new list containing only the strings using the is operator in Kotlin?
hard
A. val strings = list.filterIsInstance<String>()
B. val strings = list.filter { it is String }
C. val strings = list.map { if (it is String) it else null }
D. val strings = list.filter { it == String }

Solution

  1. Step 1: Understand filtering by type

    To get only strings, Kotlin provides filterIsInstance<String>() which filters elements by type safely.
  2. Step 2: Evaluate other options

    val strings = list.filter { it is String } filters by is String but keeps type as Any, not cast to String. val strings = list.map { if (it is String) it else null } maps to nullable list, not filtering. val strings = list.filter { it == String } compares with type itself, which is invalid.
  3. Final Answer:

    val strings = list.filterIsInstance<String>() -> Option A
  4. Quick Check:

    Use filterIsInstance for type filtering [OK]
Hint: Use filterIsInstance to get typed list quickly [OK]
Common Mistakes:
  • Using filter without casting
  • Mapping to nullable instead of filtering
  • Comparing element to type object
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