数组是相似类型数据的集合。例如,
假设我们需要记录 5 个学生的年龄。与其创建 5 个单独的变量,不如直接创建一个数组

创建 Swift 数组
以下是在 Swift 中创建数组的方法。
// an array of integer type
var 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]()
指定空数组只能存储整数数据元素。
注意:在 Swift 中,我们可以创建任何数据类型的数组,如 Int
、String
等。
访问数组元素
在 Swift 中,数组中的每个元素都与一个数字相关联。这个数字被称为数组索引。
我们可以使用索引号 (0, 1, 2 …) 来访问数组的元素。例如,
var languages = ["Swift", "Java", "C++"]
// access element at index 0
print(languages[0]) // Swift
// access element at index 2
print(languages[2]) // C++
在上面的示例中,我们创建了一个名为 languages
的数组。

在这里,我们可以看到每个数组元素都与索引号相关联。并且,我们使用了索引号来访问元素。
注意:数组索引总是从 0 开始。因此,数组的第一个元素位于索引 0 处,而不是 1。
向数组添加元素
Swift 数组提供了不同的方法向数组添加元素。
1. 使用 append()
append()
方法将元素添加到数组的末尾。例如,
var numbers = [21, 34, 54, 12]
print("Before Append: \(numbers)")
// using append method
numbers.append(32)
print("After Append: \(numbers)")
输出
Before Append: [21, 34, 54, 12] After Append: [21, 34, 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 arrays
primeNumbers.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)
这里,我们将 evenNumbers 的所有元素添加到 primeNumbers。
注意: 如果要将一个数组的所有元素添加到另一个数组,我们必须将 contentOf
与 append()
一起使用。
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)
将 32 添加到 索引 1 处。
修改数组元素
我们可以使用数组索引来修改数组元素。例如,
var dailyActivities = ["Eat","Repeat"]
print("Initial Array: \(dailyActivities)")
// change element at index 1
dailyActivities[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 1
let 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 fruits
let fruits = ["Apple", "Peach", "Mango"]
// for loop to iterate over array
for fruit in fruits {
print(fruit)
}
输出
Apple Peach Mango
查找数组元素的数量
我们可以使用 count
属性来查找数组中元素的数量。例如,
let evenNumbers = [2,4,6,8]
print("Array: \(evenNumbers)")
// find number of elements
print("Total Elements: \(evenNumbers.count)")
输出
Array: [2, 4, 6, 8] Total Elements: 4
检查数组是否为空
isEmpty
属性用于检查数组是否为空。例如,
// array with elements
let numbers = [21, 33, 59, 17]
print("Numbers: \(numbers)")
// check if numbers is empty
var result = numbers.isEmpty
print("Is numbers empty? : \(result)")
// array without elements
let evenNumbers = [Int]()
print("Even Numbers: \(evenNumbers)")
// check if evenNumbers is empty
result = evenNumbers.isEmpty
print("Is evenNumbers empty? : \(result)")
输出
Numbers: [21, 33, 59, 17] Is numbers empty? : false Even Numbers: [] Is evenNumbers empty? : true
在上面的示例中,我们使用 isEmpty
属性检查 numbers 和 evenNumbers 数组是否为空。这里,isEmpty
返回
true
- 如果数组为空false
- 如果数组不为空
包含混合数据类型的数组
到目前为止,我们一直在使用只包含一种数据类型的数组。
但是,在 Swift 中,我们也可以创建可以包含多种数据类型元素的数组。例如,
// array with String and integer data
var address: [Any] = ["Scranton", 570]
print(address)
输出
["Scranton", 570]
在上面的示例中,我们创建了一个名为 address 的数组。
var address: [Any] = ["Scranton", 570]
这里,[Any]
指定 address 可以包含任何数据类型的元素。在本例中,它存储了 String
和 Integer
数据。