Bird
Raised Fist0
Swiftprogramming~5 mins

Dictionary methods and default values in Swift - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the updateValue(_:forKey:) method do in a Swift dictionary?
It updates the value for the given key if it exists, or adds a new key-value pair if the key is not present. It returns the old value if it was replaced, or nil if the key was new.
Click to reveal answer
beginner
How can you safely access a value from a Swift dictionary with a default value if the key is missing?
Use the subscript with default value syntax: dict[key, default: defaultValue]. This returns the value for the key if it exists, or the default value otherwise.
Click to reveal answer
intermediate
What is the difference between dict[key] and dict[key, default: defaultValue] in Swift?
dict[key] returns an optional value that is nil if the key is missing. dict[key, default: defaultValue] returns a non-optional value, using the default if the key is missing.
Click to reveal answer
beginner
How does the removeValue(forKey:) method work in Swift dictionaries?
It removes the key-value pair for the given key if it exists and returns the removed value. If the key is not found, it returns nil.
Click to reveal answer
beginner
What happens when you assign a value to a dictionary key using subscript syntax in Swift?
If the key exists, the value is updated. If the key does not exist, a new key-value pair is added to the dictionary.
Click to reveal answer
What does dict.updateValue(10, forKey: "a") return if the key "a" was not in the dictionary?
A10
Bnil
CAn error
DThe old value for "a"
How do you provide a default value when accessing a dictionary key in Swift?
Adict.defaultValue(forKey: key)
Bdict.get(key, defaultValue)
Cdict[key] ?? defaultValue
Ddict[key, default: defaultValue]
What type does dict[key] return in Swift?
AOptional value
BAlways nil
CNon-optional value
DArray
Which method removes a key-value pair from a Swift dictionary?
Aremove(key:)
Bdelete(key:)
CremoveValue(forKey:)
Dpop(key:)
What happens if you assign a value to a new key in a Swift dictionary using subscript syntax?
AThe key-value pair is added
BThe dictionary throws an error
CNothing happens
DThe dictionary clears all entries
Explain how to update a value in a Swift dictionary and how to handle the old value.
Think about the method that returns the previous value when you change a dictionary entry.
You got /3 concepts.
    Describe how to access a dictionary value with a default fallback in Swift.
    It's a special subscript syntax that avoids optionals.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the updateValue(_:forKey:) method do in a Swift dictionary?
      easy
      A. It updates the value for a given key and returns the old value if it existed.
      B. It removes the key and its value from the dictionary.
      C. It returns the value for a key or a default if the key is missing.
      D. It creates a new dictionary with updated keys.

      Solution

      1. Step 1: Understand updateValue method purpose

        The updateValue(_:forKey:) method changes the value for a specified key in the dictionary.
      2. Step 2: Check return behavior

        This method returns the old value if the key existed, otherwise nil.
      3. Final Answer:

        It updates the value for a given key and returns the old value if it existed. -> Option A
      4. Quick Check:

        updateValue returns old value or nil [OK]
      Hint: Remember updateValue returns old value if key exists [OK]
      Common Mistakes:
      • Confusing updateValue with removeValue
      • Thinking it returns the new value
      • Assuming it creates a new dictionary
      2. Which of the following is the correct syntax to get a value from a dictionary with a default in Swift?
      easy
      A. let value = dict[key, default: 0]
      B. let value = dict.get(key, default: 0)
      C. let value = dict[key] ?? 0
      D. let value = dict.value(forKey: key, default: 0)

      Solution

      1. Step 1: Recall Swift dictionary default value syntax

        Swift dictionaries allow accessing values with a default using dict[key, default: defaultValue].
      2. Step 2: Compare options

        let value = dict[key, default: 0] matches the correct syntax. let value = dict[key] ?? 0 uses nil-coalescing but is not the dictionary default syntax.
      3. Final Answer:

        let value = dict[key, default: 0] -> Option A
      4. Quick Check:

        Use dict[key, default:] for default values [OK]
      Hint: Use square brackets with default: for safe dictionary access [OK]
      Common Mistakes:
      • Using get() method which doesn't exist
      • Confusing nil-coalescing with dictionary default syntax
      • Using value(forKey:) which is for NSObject
      3. What is the output of this Swift code?
      var scores = ["Alice": 10, "Bob": 8]
      let oldValue = scores.updateValue(12, forKey: "Alice")
      let missingValue = scores.updateValue(5, forKey: "Charlie")
      print(oldValue, missingValue, scores)
      medium
      A. nil Optional(5) ["Alice": 12, "Bob": 8, "Charlie": 5]
      B. 10 5 ["Alice": 12, "Bob": 8, "Charlie": 5]
      C. Optional(10) nil ["Alice": 12, "Bob": 8, "Charlie": 5]
      D. Optional(12) Optional(5) ["Alice": 10, "Bob": 8, "Charlie": 5]

      Solution

      1. Step 1: Understand updateValue return values

        Updating "Alice" from 10 to 12 returns old value Optional(10). Adding "Charlie" returns nil because key was missing.
      2. Step 2: Check dictionary after updates

        Dictionary now has "Alice":12, "Bob":8, and "Charlie":5.
      3. Final Answer:

        Optional(10) nil ["Alice": 12, "Bob": 8, "Charlie": 5] -> Option C
      4. Quick Check:

        updateValue returns old value or nil [OK]
      Hint: updateValue returns old value wrapped in Optional or nil if new key [OK]
      Common Mistakes:
      • Expecting updateValue to return new value
      • Forgetting Optional wrapping
      • Not updating dictionary correctly
      4. Identify the error in this Swift code snippet:
      var dict = ["a": 1, "b": 2]
      let removed = dict.removeValue(forKey: "c")
      print(removed!)
      medium
      A. Dictionary keys must be integers, not strings.
      B. Force unwrapping removed causes runtime crash if key missing.
      C. removeValue(forKey:) does not exist for dictionaries.
      D. print statement syntax is incorrect.

      Solution

      1. Step 1: Understand removeValue return type

        removeValue(forKey:) returns an Optional value. If key is missing, it returns nil.
      2. Step 2: Analyze force unwrapping

        Force unwrapping removed! when key "c" is missing causes a runtime crash.
      3. Final Answer:

        Force unwrapping removed causes runtime crash if key missing. -> Option B
      4. Quick Check:

        Force unwrap nil causes crash [OK]
      Hint: Avoid force unwrapping optional from removeValue without check [OK]
      Common Mistakes:
      • Assuming removeValue always returns a value
      • Ignoring optional unwrapping
      • Thinking removeValue removes all keys
      5. You have a dictionary var inventory = ["apple": 3, "banana": 5]. Write code to safely add 2 to the count of "orange", even if it doesn't exist yet, using dictionary default values. What is the correct way?
      hard
      A. inventory["orange"] = inventory["orange"]! + 2
      B. inventory["orange"] = inventory["orange"] ?? 0 + 2
      C. inventory.updateValue(inventory["orange"]! + 2, forKey: "orange")
      D. inventory["orange"] = inventory["orange", default: 0] + 2

      Solution

      1. Step 1: Understand safe addition with default

        Using inventory["orange", default: 0] returns 0 if "orange" key is missing.
      2. Step 2: Increment value safely

        Adding 2 to this default value and assigning back to inventory["orange"] updates or creates the key safely.
      3. Final Answer:

        inventory["orange"] = inventory["orange", default: 0] + 2 -> Option D
      4. Quick Check:

        dict[key] = dict[key, default: 0] + value for safe increments [OK]
      Hint: Use dict[key] = dict[key, default: 0] + amount to add safely [OK]
      Common Mistakes:
      • Force unwrapping missing keys causing crash
      • Using += on read-only default subscript
      • Using updateValue without checking for nil
      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