在写 Swift 代码的时候,经常会遇到需要把一些数据成对保存的情况。比如记录用户的年龄,用名字当钥匙,年龄当内容,这时候字典(Dictionary)就派上用场了。
什么是 Swift 字典
Swift 中的字典是一种集合类型,用来存储无序的键值对(key-value pairs)。每个键(key)都是唯一的,对应一个值(value)。这种结构特别适合查找、更新和管理成对的数据。
比如你开了一家小店,想记录商品价格:
var prices = ["苹果": 5, "香蕉": 3, "橙子": 4]
这样输入 prices["苹果"] 就能拿到 5,方便又直观。
创建字典的几种方式
最简单的就是直接用字面量:
let person = ["name": "小明", "age": "25"]
注意这里的类型是 [String: String]。如果你混用类型,Swift 会自动推断为统一类型,比如:
let mixed = ["a": 1, "b": 2.5] // 类型是 [String: Double]
也可以显式声明类型:
var scores: [String: Int] = [:]
scores["数学"] = 90
读取和修改字典
通过键来读取值是最常见的操作:
if let mathScore = scores["数学"] {
print("数学成绩是 \(mathScore)")
}
这里用了可选绑定,因为字典返回的是可选值(Optional),如果键不存在就会是 nil。
添加或修改都很简单:
scores["英语"] = 85 // 添加
scores["数学"] = 95 // 修改
删除元素
不用的数据可以删掉:
scores.removeValue(forKey: "英语")
或者直接赋值为 nil:
scores["英语"] = nil
遍历字典
有时候需要查看所有内容,比如打印成绩单:
for (subject, score) in scores {
print("\(subject): \(score)")
}
这样每一科都会列出来,顺序不固定,因为字典本身是无序的。
实际应用场景
你在做个记账 App,可以用字典存每月支出:
var expenses = ["1月": 2000, "2月": 2300, "3月": 1900]
expenses["4月"] = 2100
想算平均支出?一行搞定:
let average = expenses.values.reduce(0, +) / expenses.count
字典用熟了,处理这类数据会非常顺手。