Collections
Dictionary Lookup
Dictionaries map keys to values so code can look up a value by name.
Read by key
dictionary_lookup.swift
Replay: real traced execution (multi-file project)
let city = "Austin"
let temperatures = ["Austin": 72, "Denver": 55, "Seattle": 63]
let current = temperatures[city]!
let warmEnough = current >= 65
print("city=\(city)")
print("temperature=\(current)")
print("warmEnough=\(warmEnough)")
let city = "Denver"
let temperatures = ["Austin": 72, "Denver": 55, "Seattle": 63]
let current = temperatures[city]!
let warmEnough = current >= 65
print("city=\(city)")
print("temperature=\(current)")
print("warmEnough=\(warmEnough)")
let city = "Seattle"
let temperatures = ["Austin": 72, "Denver": 55, "Seattle": 63]
let current = temperatures[city]!
let warmEnough = current >= 65
print("city=\(city)")
print("temperature=\(current)")
print("warmEnough=\(warmEnough)")
city ← Austin, temperatures ← ["Seattle": 63, "Austin": 72, "Denver": 55]
1let city→ Austin = "Austin" //@city="Denver", "Seattle"2let temperatures→ ["Seattle": 63, "Austin": 72, "Denver": 55] = ["Austin": 72, "Denver": 55, "Seattle": 63]3let current→ 72 = temperatures[city]Optional(72)!4let warmEnough→ true = current72 >= 6556print("city=\(cityAustin)")7print("temperature=\(current72)")8print("warmEnough=\(warmEnoughtrue)")outputcity=Austin temperature=72 warmEnough=true
city ← Denver, temperatures ← ["Denver": 55, "Austin": 72, "Seattle": 63]
1let city→ Denver = "Denver"2let temperatures→ ["Denver": 55, "Austin": 72, "Seattle": 63] = ["Austin": 72, "Denver": 55, "Seattle": 63]3let current→ 55 = temperatures[city]Optional(55)!4let warmEnough→ false = current55 >= 6556print("city=\(cityDenver)")7print("temperature=\(current55)")8print("warmEnough=\(warmEnoughfalse)")outputcity=Denver temperature=55 warmEnough=false
city ← Seattle, temperatures ← ["Austin": 72, "Denver": 55, "Seattle": 63]
1let city→ Seattle = "Seattle"2let temperatures→ ["Austin": 72, "Denver": 55, "Seattle": 63] = ["Austin": 72, "Denver": 55, "Seattle": 63]3let current→ 63 = temperatures[city]Optional(63)!4let warmEnough→ false = current63 >= 6556print("city=\(citySeattle)")7print("temperature=\(current63)")8print("warmEnough=\(warmEnoughfalse)")outputcity=Seattle temperature=63 warmEnough=false
Look Up the City
- The dictionary stores temperatures for three cities.
cityisAustin.temperatures[city]!reads72.72 >= 65makeswarmEnoughtrue. | City | Temperature | Warm enough? | | --- | --- | --- | |Austin|72|true| |Denver|55|false| |Seattle|63|false|
dictionaries
A dictionary lookup uses a key. When the key is known to exist, unwrapping the result gives the stored value for later calculations.
Exercise: dictionary_lookup.swift
Look up a city temperature, compare it to 65, and print whether it is warm enough