跳到主要内容

Swift 字典操作

字典(Dictionary)是Swift中一种强大的集合类型,用于存储键值对(key-value pairs)。与数组不同,字典中的元素是无序的,但可以通过唯一的键快速访问对应的值。字典在处理需要快速查找和映射数据的场景中非常有用。

字典的基本概念

在Swift中,字典的键和值可以是任意类型,但键必须是唯一的。字典的类型表示为 [Key: Value],其中 Key 是键的类型,Value 是值的类型。

创建字典

你可以使用以下方式创建一个字典:

swift
// 创建一个空字典
var emptyDictionary: [String: Int] = [:]

// 创建一个包含键值对的字典
var fruits: [String: Int] = ["apple": 5, "banana": 3, "orange": 8]

访问字典中的值

你可以通过键来访问字典中的值。如果键不存在,Swift会返回 nil

swift
let appleCount = fruits["apple"]  // 输出: Optional(5)
let grapeCount = fruits["grape"] // 输出: nil
备注

注意:字典的返回值是可选类型(Optional),因为键可能不存在。

修改字典

你可以通过键来修改字典中的值,或者添加新的键值对。

swift
// 修改现有键的值
fruits["apple"] = 10

// 添加新的键值对
fruits["grape"] = 7

print(fruits) // 输出: ["apple": 10, "banana": 3, "orange": 8, "grape": 7]

删除键值对

你可以通过将键的值设置为 nil 来删除字典中的键值对。

swift
fruits["banana"] = nil

print(fruits) // 输出: ["apple": 10, "orange": 8, "grape": 7]

遍历字典

你可以使用 for-in 循环来遍历字典中的所有键值对。

swift
for (fruit, count) in fruits {
print("\(fruit): \(count)")
}
// 输出:
// apple: 10
// orange: 8
// grape: 7

实际案例

假设你正在开发一个简单的库存管理系统,你需要跟踪每种商品的库存数量。字典非常适合这种场景。

swift
var inventory: [String: Int] = ["shirt": 20, "pants": 15, "shoes": 10]

// 添加新商品
inventory["hat"] = 5

// 更新库存
inventory["shirt"] = 25

// 删除商品
inventory["pants"] = nil

// 检查库存
for (item, quantity) in inventory {
print("\(item): \(quantity)")
}
// 输出:
// shirt: 25
// shoes: 10
// hat: 5

总结

字典是Swift中非常实用的集合类型,特别适合存储和快速查找键值对。通过本文,你已经学会了如何创建、访问、修改和遍历字典。字典在实际开发中有广泛的应用,如库存管理、配置设置、数据映射等。

附加资源与练习

  • 练习1:创建一个字典,存储你最喜欢的书籍及其作者,然后遍历字典并打印每本书及其作者。
  • 练习2:编写一个函数,接受一个字典和一个键作为参数,返回该键对应的值。如果键不存在,返回默认值。
swift
func getValue(from dictionary: [String: Int], for key: String, defaultValue: Int) -> Int {
return dictionary[key] ?? defaultValue
}

let scores = ["Alice": 85, "Bob": 90]
let aliceScore = getValue(from: scores, for: "Alice", defaultValue: 0) // 输出: 85
let charlieScore = getValue(from: scores, for: "Charlie", defaultValue: 0) // 输出: 0

通过不断练习,你将更加熟练地使用Swift中的字典操作。