Swift 数组
在本教程中,您将通过实例学习 Swift 数组。
数组是类似类型数据的集合。例如
假设我们需要记录 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]()
指定空数组只能存储整数数据元素。
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
的数组。
在这里,我们可以看到每个数组元素都与索引号关联。然后,我们使用索引号访问元素。
向数组添加元素
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, 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 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)
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 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
属性检查数组编号和偶数是否为空。在这里, iEmpty
返回
- 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]
指定地址可以保存任何数据类型的元素。在这种情况下,它存储字符串和整数数据。