Bird
Raised Fist0
Swiftprogramming~20 mins

Is operator for type checking in Swift - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Swift Type Checker Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this Swift code using 'is' operator?
Consider the following Swift code. What will be printed when it runs?
Swift
class Animal {}
class Dog: Animal {}

let pet: Animal = Dog()

if pet is Dog {
    print("It's a dog")
} else {
    print("It's not a dog")
}
ACompile-time error
BIt's not a dog
CIt's a dog
DRuntime error
Attempts:
2 left
💡 Hint
The 'is' operator checks if an instance is of a certain type or inherits from it.
❓ Predict Output
intermediate
2:00remaining
What does this Swift code print when checking type with 'is'?
Analyze the code below and select the output:
Swift
let value: Any = 42

if value is String {
    print("String detected")
} else {
    print("Not a String")
}
AString detected
BNot a String
CCompile-time error
DRuntime error
Attempts:
2 left
💡 Hint
The 'is' operator checks if the value is of the specified type.
❓ Predict Output
advanced
2:00remaining
What is the output of this Swift code using 'is' with protocol conformance?
Given the code below, what will be printed?
Swift
protocol Vehicle {}
class Car: Vehicle {}
class Bicycle {}

let myRide: Any = Car()

if myRide is Vehicle {
    print("It's a vehicle")
} else {
    print("It's not a vehicle")
}
AIt's a vehicle
BIt's not a vehicle
CCompile-time error
DRuntime error
Attempts:
2 left
💡 Hint
The 'is' operator works with protocol conformance as well as class inheritance.
❓ Predict Output
advanced
2:00remaining
What error does this Swift code raise when using 'is' incorrectly?
Examine the code and select the error it produces when compiled or run:
Swift
let number = 10

if number is Int? {
    print("Optional Int")
} else {
    print("Not Optional Int")
}
APrints "Not Optional Int"
BPrints "Optional Int"
CCompile-time error: 'is' cannot check optional type like this
DRuntime error: unexpected nil
Attempts:
2 left
💡 Hint
Check how 'is' works with optional types and non-optional values.
🧠 Conceptual
expert
2:00remaining
Which option correctly explains the behavior of 'is' operator in Swift?
Select the statement that best describes how the 'is' operator works in Swift.
AThe 'is' operator performs a runtime cast and changes the instance type if the check passes.
BThe 'is' operator checks if an instance is exactly of the specified type, excluding subclasses or protocol conformances.
CThe 'is' operator can only be used with classes, not with structs or enums.
DThe 'is' operator checks if an instance is of the specified type or any subclass, including protocol conformance, returning true if so.
Attempts:
2 left
💡 Hint
Think about inheritance and protocol conformance in Swift type checking.

Practice

(1/5)
1. What does the is operator do in Swift?
easy
A. Checks if a value is of a certain type
B. Converts a value to another type
C. Declares a new variable
D. Compares two values for equality

Solution

  1. Step 1: Understand the purpose of is operator

    The is operator is used to check the type of a value in Swift.
  2. Step 2: Differentiate from other operators

    Unlike conversion or comparison, is only checks type and returns true or false.
  3. Final Answer:

    Checks if a value is of a certain type -> Option A
  4. Quick Check:

    is operator = type check [OK]
Hint: Remember: is checks type, not value or conversion [OK]
Common Mistakes:
  • Confusing is with type casting
  • Thinking is compares values
  • Using is to convert types
2. Which of the following is the correct syntax to check if variable item is of type String in Swift?
easy
A. if item == String { }
B. if item as String { }
C. if item is String { }
D. if item instanceof String { }

Solution

  1. Step 1: Recall Swift type checking syntax

    Swift uses is to check type, so item is String is correct.
  2. Step 2: Identify incorrect options

    == compares values, as is for casting, and instanceof is not Swift syntax.
  3. Final Answer:

    if item is String { } -> Option C
  4. Quick Check:

    Type check syntax = is [OK]
Hint: Use is for type checks, not as or == [OK]
Common Mistakes:
  • Using == instead of is
  • Confusing is with as
  • Using JavaScript's instanceof in Swift
3. What will be the output of the following Swift code?
let value: Any = 42
if value is Int {
    print("Integer")
} else {
    print("Not an Integer")
}
medium
A. Runtime error
B. Not an Integer
C. Compilation error
D. Integer

Solution

  1. Step 1: Analyze the variable type

    The variable value is declared as Any but holds the integer 42.
  2. Step 2: Check the is condition

    The condition value is Int checks if the value is an integer, which is true.
  3. Final Answer:

    Integer -> Option D
  4. Quick Check:

    is Int on 42 = true [OK]
Hint: Check actual stored type, not declared type [OK]
Common Mistakes:
  • Assuming Any means not Int
  • Expecting a compile error for is
  • Confusing is with casting
4. Identify the error in the following Swift code snippet:
let obj: Any = "Hello"
if obj is String {
    print(obj as String)
}
medium
A. Incorrect casting syntax with as
B. Using is instead of as?
C. Missing optional binding for safe cast
D. No error, code runs correctly

Solution

  1. Step 1: Understand casting syntax in Swift

    Direct casting with as requires the compiler to know the type; here obj is Any.
  2. Step 2: Identify the correct cast usage

    Safe cast should use as? with optional binding or forced cast as!. Using as String alone causes error.
  3. Final Answer:

    Incorrect casting syntax with as -> Option A
  4. Quick Check:

    Use as? or as! for casting [OK]
Hint: Use as? for safe cast, not plain as [OK]
Common Mistakes:
  • Using as without optional binding
  • Ignoring safe cast with as?
  • Assuming is casts automatically
5. Given a list of mixed types: let items: [Any] = [1, "two", 3.0, "four"], which Swift code correctly prints only the strings using the is operator?
hard
A. for item in items { if item == String { print(item) } }
B. for item in items { if item is String { print(item) } }
C. for item in items { if item as String { print(item) } }
D. for item in items { if item instanceof String { print(item) } }

Solution

  1. Step 1: Understand the goal

    We want to print only elements that are strings from a mixed array.
  2. Step 2: Use correct type check syntax

    The is operator checks type correctly; item is String returns true for strings.
  3. Step 3: Identify incorrect options

    == String compares values, as String is invalid syntax here, and instanceof is not Swift.
  4. Final Answer:

    for item in items { if item is String { print(item) } } -> Option B
  5. Quick Check:

    Use is to filter by type [OK]
Hint: Loop and check type with is to filter items [OK]
Common Mistakes:
  • Using equality instead of type check
  • Trying to cast inside condition incorrectly
  • Using non-Swift keywords like instanceof
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