📅  最后修改于: 2023-12-03 15:21:58.407000             🧑  作者: Mango
在Swift中,数组是一种有序的集合,每个元素都有唯一的数字索引。
下面是一些从Swift数组中获取索引的方法。
firstIndex(of:)
或 lastIndex(of:)
Swift数组有一个名为 firstIndex(of:)
的方法,该方法返回数组中指定元素的第一个索引位置。如果数组中没有该元素,则返回 nil
。
let fruits = ["apple", "banana", "grape"]
let bananaIndex = fruits.firstIndex(of: "banana") // 1
let watermelonIndex = fruits.firstIndex(of: "watermelon") // nil
类似地,lastIndex(of:)
方法返回数组中指定元素的最后一个索引位置。
let fruits = ["apple", "banana", "grape", "banana"]
let lastBananaIndex = fruits.lastIndex(of: "banana") // 3
let watermelonIndex = fruits.lastIndex(of: "watermelon") // nil
index(where:)
或 firstIndex(where:)
如果你需要查找特定条件的数组元素,并返回该元素的索引,则可以使用 index(where:)
方法。该方法接受一个返回 Bool
类型的闭包,用于确定要查找的元素是否符合特定条件。
let numbers = [1, 3, 7, 10, 14]
let index = numbers.index(where: { $0 % 2 == 0 }) // 3
类似地,firstIndex(where:)
方法返回数组中第一个符合特定条件的元素的索引。如果没有符合条件的元素,则返回 nil
。
let numbers = [1, 3, 7, 10, 14]
let index = numbers.firstIndex(where: { $0 % 5 == 0 }) // 3
let index2 = numbers.firstIndex(where: { $0 % 15 == 0 }) // nil
enumerate()
Swift数组有一个名为 enumerate()
的方法,该方法返回一个元组的数组,每个元组都包含数组元素的索引和值。
let fruits = ["apple", "banana", "grape"]
for (index, value) in fruits.enumerated() {
print("Index: \(index), Value: \(value)")
}
输出:
Index: 0, Value: apple
Index: 1, Value: banana
Index: 2, Value: grape
indices
Swift数组还有一个名为 indices
的只读属性,该属性返回一个包含数组所有索引的范围(Range<Int>
)。
let fruits = ["apple", "banana", "grape"]
for index in fruits.indices {
print("Index: \(index), Value: \(fruits[index])")
}
输出:
Index: 0, Value: apple
Index: 1, Value: banana
Index: 2, Value: grape
总之,Swift提供了多种方法来获取数组中的索引。根据需要选择合适的方法即可。