Swift 数组
在本教程中,您将通过实例学习 Swift 数组。
数组是类似类型数据的集合。例如
假设我们需要记录 5 名学生的年龄。我们可以简单地创建一个数组,而不是创建 5 个单独的变量:

创建一个 Swift 数组
下面是我们如何在 Swift 中创建数组。
// an array of integer typevar numbers : [Int] = [2, 4, 6, 8]print("Array: \(numbers)")
结果如下:
Array: [2, 4, 6, 8]
在上面的实例中,我们创建了一个名为 numbers 的数组。这里,[Int] 指定数组只能存储整数数据。
Swift 是一种类型推理语言,即它可以根据数组的值自动识别数组的数据类型。因此,我们可以在不指定数据类型的情况下创建数组。例如:
var numbers = [2, 4, 6, 8]print("Array: \(numbers)") // [2, 4, 6, 8]
创建一个空数组
在 Swift 中,我们还可以创建一个空数组。例如:
var value = [Int]()print(value)
结果为:
[]
在上面的实例中,value 是一个不包含任何元素的空数组。
重要的是要注意,在创建空数组时,必须在方括号 [] 内指定数据类型,然后使用初始化器语法 ()。这里,[Int]() 指定空数组只能存储整数数据元素。
Int、String 等。访问数组元素
在 Swift 中,数组中的每个元素都与一个数字关联。该数字称为数组索引。
我们可以使用索引号(0,1,2…)访问数组的元素。例如:
var languages = ["Swift", "Java", "C++"]// access element at index 0print(languages[0]) // Swift// access element at index 2print(languages[2]) // C++
在上面的实例中,我们创建了一个名为 languages 的数组。

在这里,我们可以看到每个数组元素都与索引号关联。然后,我们使用索引号访问元素。
向数组添加元素
Swift 数组提供了向数组添加元素的不同方法。
1.使用 append()
append() 方法在数组末尾添加一个元素。例如:
var numbers = [21, 34, 54, 12]print("Before Append: \(numbers)")// using append methodnumbers.append(32)print("After Append: \(numbers)")
结果如下:
Before Append: [21, 34, 54, 12]After Append: [21, 43, 54, 12, 32]
在上面的实例中,我们创建了一个名为 numbers 的数组。注意这一行,
numbers.append(32)
这里,append() 在数组的末尾添加 32。
我们还可以使用 append() 方法将一个数组的所有元素添加到另一个数组中。例如:
var primeNumbers = [2, 3, 5]print("Array1: \(primeNumbers)")var evenNumbers = [4, 6, 8]print("Array2: \(evenNumbers)")// join two arraysprimeNumbers.append(contentsOf: evenNumbers)print("Array after append: \(primeNumbers)")
结果如下:
Array1: [2, 3, 5]Array2: [4, 6, 8]Array after append: [2, 3, 5, 4, 6, 8]
在上面的实例中,我们有两个名为 primeNumbers 和 evenNumbers 的数组。注意这一句,
primeNumbers.append(contentsOf: evenNumbers)
append() 的 contentOf。2. 使用 insert()
insert() 方法用于在数组的指定位置添加元素。例如:
var numbers = [21, 34, 54, 12]print("Before Insert: \(numbers)")numbers.insert(32, at: 1)print("After insert: \(numbers)")
结果为:
Before insert: [21, 34, 54, 12]After insert: [21, 32, 34, 54, 12]
这里,numbers.insert(32,at:1) 在 索引 1 处添加 32。
修改数组的元素
我们可以使用数组索引来修改数组元素。例如:
var dailyActivities = ["Eat","Repeat"]print("Initial Array: \(dailyActivities)")// change element at index 1dailyActivities[1] = "Sleep"print("Updated Array: \(dailyActivities)")
结果为:
Initial Array: ["Eat", "Repeat"]Updated Array: ["Eat", "Sleep"]
这里,最初 索引 1 处的值是 Repeat。然后,我们使用将值更改为 Sleep
dailyActivities[1] = "Sleep"
从数组中移除元素
我们可以使用 remove() 方法从数组中移除最后一个元素。例如,
var languages = ["Swift","Java","Python"]print("Initial Array: \(languages)")// remove element at index 1let removedValue = languages.remove(at: 1)print("Updated Array: \(languages)")print("Removed value: \(removedValue)")
结果为:
Initial Array: ["Swift", "Java", "Python"]Updated Array: ["Swift", "Python"]Removed value: Java
类似地,我们还可以使用
removeFirst()- 删除第一个元素removeLast()- 删除最后一个元素removeAll()- 删除数组中的所有元素
其他数组方法
| 方法 | 描述 |
|---|---|
| sort() | 对数组元素排序 |
| shuffle() | 改变数组元素的顺序 |
| forEach() | 为每个元素调用一个函数 |
| contains() | 搜索数组中的元素 |
| swapAt() | 交换数组元素的位置 |
| reverse() | 反转数组元素的顺序 |
循环数组
我们可以使用 for 循环 迭代数组的元素。例如,
// an array of fruitslet fruits = ["Apple", "Peach", "Mango"]// for loop to iterate over arrayfor fruit in fruits {print(fruit)}
结果如下:
ApplePeachMango
查找数组元素数量
我们可以使用 count 属性来查找数组中存在的元素数。例如,
let evenNumbers = [2,4,6,8]print("Array: \(evenNumbers)")// find number of elementsprint("Total Elements: \(evenNumbers.count)")
结果如下:
Array: [2, 4, 6, 8]Total Elements: 4
检查数组是否为空
isEmpty 属性用于检查数组是否为空。例如,
// array with elementslet numbers = [21, 33, 59, 17]print("Numbers: \(numbers)")// check if numbers is emptyvar result = numbers.isEmptyprint("Is numbers empty? : \(result)")// array without elementslet evenNumbers = [Int]()print("Even Numbers: \(evenNumbers)")// check if evenNumbers is emptyresult = evenNumbers.isEmptyprint("Is evenNumbers empty? : \(result)")
结果如下:
Numbers: [21, 33, 59, 17]Is numbers empty? : falseEven Numbers: []Is evenNumbers empty? : true
在上面的实例中,我们使用 isEmpty 属性检查数组编号和偶数是否为空。在这里, iEmpty 返回
- true - 如果数组为空
- false - 如果数组不为空
具有混合数据类型的数组
到目前为止,我们一直在使用数组来保存单一数据类型的元素。
然而,在 Swift 中,我们也可以创建可以保存多种数据类型元素的数组。例如,
// array with String and integer datavar address: [Any] = ["Scranton", 570]print(address)
结果如下:
["Scranton", 570]
在上面的实例中,我们创建了一个名为 address 的数组。
var address: [Any] = ["Scranton", 570]
这里,[Any] 指定地址可以保存任何数据类型的元素。在这种情况下,它存储字符串和整数数据。