Bird
Raised Fist0
Swiftprogramming~10 mins

Nil represents absence of value 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 assign nil to the optional variable.

Swift
var name: String? = [1]
Drag options to blanks, or click blank then click option'
Afalse
B""
C0
Dnil
Attempts:
3 left
💡 Hint
Common Mistakes
Using empty string "" instead of nil for optional variables.
Assigning 0 or false to a String optional.
2fill in blank
medium

Complete the code to safely unwrap the optional using if let.

Swift
if let unwrappedName = name [1] {
    print("Name is \(unwrappedName)")
}
Drag options to blanks, or click blank then click option'
A== nil
B!=
C=
D==
Attempts:
3 left
💡 Hint
Common Mistakes
Using == nil which checks for nil instead of unwrapping.
Using = which is assignment, not comparison.
3fill in blank
hard

Fix the error in force unwrapping the optional variable.

Swift
let forcedName = name[1]
Drag options to blanks, or click blank then click option'
A!
B?
C.
D:
Attempts:
3 left
💡 Hint
Common Mistakes
Using ? instead of ! for force unwrapping.
Using dot or colon which are invalid here.
4fill in blank
hard

Fill both blanks to create a dictionary with optional values and check for nil.

Swift
let ages: [String: Int?] = ["Alice": [1], "Bob": [2]]
if ages["Alice"] [2] nil {
    print("Alice's age is known")
}
Drag options to blanks, or click blank then click option'
Anil
B25
C!=
D==
Attempts:
3 left
💡 Hint
Common Mistakes
Assigning nil to Alice when we want a known age.
Using == instead of != in the if condition.
5fill in blank
hard

Fill all three blanks to unwrap an optional with guard and provide a default value.

Swift
func greet(_ name: String?) {
    guard let unwrappedName = name [1] else {
        print("Hello, [2]!")
        return
    }
    print("Hello, [3]!")
}
Drag options to blanks, or click blank then click option'
A!=
BGuest
CunwrappedName
D==
Attempts:
3 left
💡 Hint
Common Mistakes
Using == instead of != in the guard condition.
Printing the optional variable instead of the unwrapped one.

Practice

(1/5)
1. What does nil represent in Swift?
easy
A. The absence of a value
B. A zero integer
C. An empty string
D. A Boolean false

Solution

  1. Step 1: Understand the meaning of nil

    In Swift, nil means there is no value assigned to a variable or constant.
  2. Step 2: Differentiate from other values

    Zero, empty string, and false are actual values, not absence of value.
  3. Final Answer:

    The absence of a value -> Option A
  4. Quick Check:

    nil means no value [OK]
Hint: Remember nil means 'nothing' or 'no value' [OK]
Common Mistakes:
  • Confusing nil with zero or empty string
  • Thinking nil is a Boolean value
  • Assuming nil is a default value
2. Which of the following is the correct way to declare an optional integer that can hold nil?
easy
A. var number: Int?
B. var number: Int = 0?
C. var number: Int!
D. var number: Int = nil

Solution

  1. Step 1: Understand optional declaration

    In Swift, adding ? after a type makes it optional, allowing it to hold a value or nil.
  2. Step 2: Check each option

    var number: Int = nil tries to assign nil to a non-optional Int, which is invalid. var number: Int! declares an implicitly unwrapped optional, which is valid but different. var number: Int = 0? is invalid syntax.
  3. Final Answer:

    var number: Int? -> Option B
  4. Quick Check:

    Use ? to declare optional [OK]
Hint: Use ? after type to allow nil values [OK]
Common Mistakes:
  • Assigning nil to non-optional type
  • Confusing ! with ? for optionals
  • Using invalid syntax like 0?
3. What will be the output of this Swift code?
var name: String? = nil
if name == nil {
    print("No name provided")
} else {
    print(name!)
}
medium
A. Empty string
B. nil
C. Runtime error
D. No name provided

Solution

  1. Step 1: Check the value of name

    The variable name is declared as optional String and assigned nil.
  2. Step 2: Evaluate the if condition

    The condition name == nil is true, so the code prints "No name provided".
  3. Final Answer:

    No name provided -> Option D
  4. Quick Check:

    Optional nil triggers if branch [OK]
Hint: Check if optional is nil before unwrapping [OK]
Common Mistakes:
  • Assuming print(name!) works when name is nil
  • Expecting 'nil' to print as string
  • Ignoring the if condition
4. Identify the error in this Swift code snippet:
var age: Int?
age = nil
print(age!)
medium
A. Syntax error: missing initialization
B. No error, prints nil
C. Runtime error: force unwrapping nil
D. Compile error: optional not declared

Solution

  1. Step 1: Understand force unwrapping

    Using ! on an optional tries to get its value directly.
  2. Step 2: Check the value of age

    Since age is nil, force unwrapping causes a runtime crash.
  3. Final Answer:

    Runtime error: force unwrapping nil -> Option C
  4. Quick Check:

    Force unwrap nil causes runtime error [OK]
Hint: Never force unwrap optionals without checking nil first [OK]
Common Mistakes:
  • Assuming force unwrap prints nil
  • Ignoring runtime crash possibility
  • Confusing compile and runtime errors
5. Given this dictionary of optional ages, which code safely prints all ages or 0 if nil?
let ages: [String: Int?] = ["Alice": 30, "Bob": nil, "Carol": 25]
// Fill in the blank
for (name, age) in ages {
    print("\(name): \(____)")
}
hard
A. age ?? 0
B. age! ?? 0
C. age! != nil ? age! : 0
D. age as! String

Solution

  1. Step 1: Understand the dictionary type

    The dictionary has values of type Int?, meaning each age can be an integer or nil.
  2. Step 2: Use nil-coalescing operator

    The expression age ?? 0 safely unwraps age or uses 0 if nil.
  3. Step 3: Check other options

    age! ?? 0 force unwraps age which can cause runtime error. age! != nil ? age! : 0 force unwraps in the condition, causing runtime error if nil. age as! String is invalid cast.
  4. Final Answer:

    age ?? 0 -> Option A
  5. Quick Check:

    Use ?? to provide default for nil [OK]
Hint: Use ?? to replace nil with default value [OK]
Common Mistakes:
  • Force unwrapping optionals without checking nil
  • Using incorrect type casting
  • Not handling nil values safely
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