更新字典
本课属于 Coddy Swift 学习旅程的“逻辑与流程”单元。第 14 课,共 56 课。
向字典中写入值的方式和读取值一样:使用下标。
var prices: [String: Int] = ["apple": 1]
prices["bread"] = 3 // 添加键
prices["apple"] = 2 // 更新已有的键
prices["apple"] = nil // 删除键两个命名方法可以更明确地完成相同的操作:
prices.updateValue(5, forKey: "milk") // 返回原来的值,或 nil
prices.removeValue(forKey: "bread") // 返回被移除的值,或 nil这些命名方法会返回之前的值,这在你需要知道该键是否已存在时很有用。
上一课介绍的默认下标模式与变更操作完美结合,这样你就能构建计数器,而无需编写 if:
var counts: [String: Int] = [:]
for letter in ["a", "b", "a"] {
counts[letter, default: 0] += 1
}
// counts == ["a": 2, "b": 1]挑战
中等读取一行输入:一组以逗号分隔、用于操作初始字典的操作。每个操作都是以下之一:
set:<key>:<value>添加或更新(值是整数)add:<key>:<value>将值加到现有值上(使用默认下标模式)del:<key>删除键
按顺序对初始为空的 [String: Int] 应用每个操作后,按字母顺序打印键,每行一个,格式为 <key>=<value>。
对于输入 set:a:5,add:a:3,set:b:1,del:b,add:c:2,输出为:
a=8
c=2亲手试试
let ops = readLine()!.components(separatedBy: ",")
var dict: [String: Int] = [:]
// TODO:解析每个 op 并执行 set/add/del;按键排序后输出各键及其值
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Swift 在线编辑器