Bird
Raised Fist0
Swiftprogramming~10 mins

Nil coalescing operator deep usage in Swift - Interactive Code Practice

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

Complete the code to provide a default value using the nil coalescing operator.

Swift
let name: String? = nil
let displayName = name [1] "Guest"
Drag options to blanks, or click blank then click option'
A||
B??
C&&
D!
Attempts:
3 left
💡 Hint
Common Mistakes
Using logical operators like || or && instead of the nil coalescing operator.
Using the force unwrap operator ! which can cause a crash if the value is nil.
2fill in blank
medium

Complete the code to unwrap an optional integer and provide a default value using the nil coalescing operator.

Swift
var optionalNumber: Int? = nil
let number = optionalNumber [1] 10
Drag options to blanks, or click blank then click option'
A!
B?
C??
D:
Attempts:
3 left
💡 Hint
Common Mistakes
Using the force unwrap operator '!' which can cause runtime errors if the optional is nil.
Using the ternary conditional operator '?' incorrectly.
3fill in blank
hard

Fix the error in the code by correctly using the nil coalescing operator to provide a default string.

Swift
let optionalGreeting: String? = nil
let greeting = optionalGreeting [1] "Hello"
Drag options to blanks, or click blank then click option'
A==
B!
C?:
D??
Attempts:
3 left
💡 Hint
Common Mistakes
Using the force unwrap operator '!' which can cause a crash if the optional is nil.
Using comparison operators like '==' or ternary operators incorrectly.
4fill in blank
hard

Fill both blanks to create a dictionary comprehension that uses the nil coalescing operator to provide default values.

Swift
let scores: [String: Int?] = ["Alice": 85, "Bob": nil, "Charlie": 92]
let finalScores = scores.mapValues { $0 [1] [2] }
Drag options to blanks, or click blank then click option'
A??
B0
Cnil
D!
Attempts:
3 left
💡 Hint
Common Mistakes
Using force unwrap '!' which can cause runtime errors.
Using 'nil' as a default value which defeats the purpose of providing a fallback.
5fill in blank
hard

Fill all three blanks to safely unwrap nested optionals using the nil coalescing operator.

Swift
struct User {
    var profile: Profile?
}
struct Profile {
    var nickname: String?
}

let user: User? = User(profile: Profile(nickname: nil))
let nickname = user[1]profile[2]nickname [3] "Anonymous"
Drag options to blanks, or click blank then click option'
A?->
B??
D?.
Attempts:
3 left
💡 Hint
Common Mistakes
Using force unwraps which can cause crashes if any optional is nil.
Confusing optional chaining syntax.

Practice

(1/5)
1. What does the nil coalescing operator ?? do in Swift?
easy
A. It returns the value of an optional if it is not nil, otherwise returns a default value.
B. It forces unwraps an optional and crashes if nil.
C. It converts a non-optional value into an optional.
D. It checks if two optionals are equal.

Solution

  1. Step 1: Understand the purpose of the nil coalescing operator

    The operator ?? is used to provide a default value when an optional is nil.
  2. Step 2: Compare with other options

    Options A, C, and D describe different behaviors unrelated to ??.
  3. Final Answer:

    It returns the value of an optional if it is not nil, otherwise returns a default value. -> Option A
  4. Quick Check:

    Nil coalescing operator = default value fallback [OK]
Hint: Remember: ?? means "use this if nil" [OK]
Common Mistakes:
  • Confusing ?? with forced unwrapping (!)
  • Thinking ?? converts types
  • Assuming ?? compares optionals
2. Which of the following is the correct syntax to use the nil coalescing operator in Swift?
easy
A. let value = optionalValue ??? defaultValue
B. let value = optionalValue ?: defaultValue
C. let value = optionalValue ? defaultValue
D. let value = optionalValue ?? defaultValue

Solution

  1. Step 1: Recall the correct syntax for nil coalescing

    The correct syntax uses two question marks: ?? between the optional and the default value.
  2. Step 2: Eliminate incorrect options

    Options B, C, and D use invalid or incorrect operators.
  3. Final Answer:

    let value = optionalValue ?? defaultValue -> Option D
  4. Quick Check:

    Syntax for nil coalescing = ?? [OK]
Hint: Look for exactly two question marks ?? [OK]
Common Mistakes:
  • Using ?: which is from other languages
  • Using single ? instead of ??
  • Adding extra question marks ???
3. What is the output of the following Swift code?
let a: Int? = nil
let b: Int? = 5
let c: Int? = nil
let result = a ?? b ?? c ?? 10
print(result)
medium
A. 5
B. 10
C. nil
D. Compilation error

Solution

  1. Step 1: Evaluate the chained nil coalescing

    The expression a ?? b ?? c ?? 10 checks each optional from left to right and returns the first non-nil value.
  2. Step 2: Check each optional's value

    a is nil, so move to b which is 5 (non-nil), so the result is 5.
  3. Final Answer:

    5 -> Option A
  4. Quick Check:

    First non-nil value = 5 [OK]
Hint: Chain ?? to pick first non-nil value [OK]
Common Mistakes:
  • Assuming nil is returned if first is nil
  • Ignoring chaining order
  • Thinking default 10 is always returned
4. Identify the error in this Swift code using nil coalescing:
let x: Int? = nil
let y: Int = 3
let z = x ?? y ?? 5
print(z)
medium
A. x must be non-optional
B. No error, code runs fine
C. y must be optional to use ??
D. Cannot use ?? with non-optional y

Solution

  1. Step 1: Understand the types involved in nil coalescing

    The operator ?? requires the right side to be the same type as the optional or a non-optional fallback value.
  2. Step 2: Analyze the expression x ?? y ?? 5

    Here, x is Int?, y is Int, but y ?? 5 is invalid because y is not optional, so you cannot use ?? on it.
  3. Final Answer:

    Cannot use ?? with non-optional y -> Cannot use ?? with non-optional y
  4. Quick Check:

    Right side of ?? must be optional or value [OK]
Hint: Right side of ?? must be optional or value, not non-optional with ?? [OK]
Common Mistakes:
  • Using ?? on non-optional values
  • Confusing optional and non-optional types
  • Assuming ?? works like || operator
5. Given the following Swift code, what will be the value of finalValue?
func getValue() -> Int? { return nil }
let a: Int? = nil
let b: Int? = getValue()
let c: Int? = 7
let finalValue = a ?? b ?? c ?? 0
hard
A. nil
B. 0
C. 7
D. Compilation error

Solution

  1. Step 1: Evaluate each optional in the chain

    a is nil, b is nil (from getValue()), c is 7 (non-nil).
  2. Step 2: Apply nil coalescing operator

    The expression a ?? b ?? c ?? 0 returns the first non-nil value, which is 7.
  3. Final Answer:

    7 -> Option C
  4. Quick Check:

    First non-nil in chain = 7 [OK]
Hint: Chain ?? to find first non-nil, else default [OK]
Common Mistakes:
  • Assuming function return nil means error
  • Ignoring that c is non-nil
  • Thinking default 0 is returned always
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