9 数据类型之集合类型

在Swift中,集合类型是为了存储多个值而设计的。集合类型主要包括数组(Array)、字典(Dictionary)和集合(Set)。本章将详细介绍这些集合类型的特性和用法,并提供实用的示例来帮助你更好地理解它们。

数组(Array)

数组是一种有序的、可以存放同类型元素的集合。在Swift中,数组可以存储任何类型的数据,包括基本数据类型和自定义数据类型。

创建数组

我们可以使用以下几种方式创建数组:

1
2
3
4
5
6
7
8
9
// 创建空数组
var emptyArray: [Int] = []
var anotherEmptyArray = [Double]()

// 创建包含元素的数组
var numbers = [1, 2, 3, 4, 5]

// 使用数组字面量
var fruits: [String] = ["苹果", "香蕉", "橙子"]

访问数组元素

可以通过索引访问数组中的元素,索引从0开始,示例代码如下:

1
2
let firstFruit = fruits[0] // "苹果"
let secondFruit = fruits[1] // "香蕉"

修改数组

我们可以通过索引来修改数组的元素,还可以添加或删除元素:

1
2
3
fruits[0] = "青苹果" // 修改第一个元素
fruits.append("葡萄") // 添加元素
fruits.remove(at: 1) // 删除第二个元素

数组遍历

使用for-in循环遍历数组中的元素非常简单:

1
2
3
for fruit in fruits {
print(fruit)
}

字典(Dictionary)

字典是一种无序的、以键值对形式存储数据的集合。每个键(key)是唯一的,并用于访问对应的值(value)。

创建字典

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

1
2
3
4
5
// 创建空字典
var emptyDict: [String: Int] = [:]

// 创建包含元素的字典
var ages = ["小明": 20, "小红": 22, "小华": 19]

访问字典元素

可以使用键值访问元素:

1
let xiaohuaAge = ages["小华"] ?? 0 // 使用 nil 合并运算符提供默认值

修改字典

字典的值可以通过键进行修改,新增键值对或者删除键值对:

1
2
3
ages["小明"] = 21 // 修改小明的年龄
ages["小丽"] = 23 // 添加小丽的年龄
ages.removeValue(forKey: "小红") // 删除小红的年龄

字典遍历

遍历字典时,可以同时获取键和值:

1
2
3
for (name, age) in ages {
print("\(name) 的年龄是 \(age)")
}

集合(Set)

集合是一种无序、且每个值都是唯一的集合。集合主要用于存储不重复的值,可以通过集合的数学运算有效处理问题。

创建集合

创建集合和数组比较类似,但是使用大括号 {}

1
2
var numbersSet: Set<Int> = [1, 2, 3, 4]
var fruitSet: Set<String> = ["苹果", "香蕉", "橙子"]

集合操作

集合提供了一些常用的操作,例如并集、交集和差集:

1
2
3
4
5
6
let setA: Set = [1, 2, 3, 4]
let setB: Set = [3, 4, 5, 6]

let union = setA.union(setB) // 并集 {1, 2, 3, 4, 5, 6}
let intersection = setA.intersection(setB) // 交集 {3, 4}
let difference = setA.subtracting(setB) // 差集 {1, 2}

集合遍历

和数组相似,集合也可以通过for-in循环遍历:

1
2
3
for number in numbersSet {
print(number)
}

小结

通过本章关于集合类型的学习,你应该对数组字典集合的创建、访问、修改以及遍历有了全面的理解。这些集合类型在Swift中是非常重要的基础知识,为我们后续的程序控制流和逻辑实现奠定了坚实的基础。

接下来,我们将进入第四章:控制流之if语句,进一步探讨如何使用这些集合类型来实现复杂的逻辑判断。

9 数据类型之集合类型

https://zglg.work/swift-lang-zero/9/

作者

IT教程网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论