Swift数组:检查索引是否存在


在Swift中,有多种方法可以检查数组中是否存在某个索引。可以使用startIndex、endIndex、indices属性和count属性。本文将介绍一些检查索引的示例。

示例1:使用FirstIndex & EndIndex

可以通过将索引与数组的startIndex和endIndex属性进行比较来检查特定索引是否在Swift数组中存在。以下是一个示例。

import Foundation
let inputArray = [1, 2, 3, 4, 5]
let targetIndex = 3
if targetIndex >= inputArray.startIndex && targetIndex < inputArray.endIndex {
   print("Index \(targetIndex) exists in the array \(inputArray)")
} else {
   print("Index does not exist in the array")
}

输出

Index 3 exists in the array [1, 2, 3, 4, 5]

在这个例子中,我们首先确定要验证的索引和名为inputArray的数组。接下来,我们使用if语句将targetIndex与inputArray的startIndex和endIndex属性进行比较。如果targetIndex大于等于startIndex,小于endIndex且小于targetIndex,则表示targetIndex存在于数组中;在这种情况下,会打印一条相应的提示信息。如果没有,则打印一条消息,指出该索引不存在于数组中。

示例2:使用Indices属性

import Foundation
let inputArray = [1, 2, 3, 4, 5]
let targetIndex = 3
if inputArray.indices.contains(targetIndex) {
   print("Index \(targetIndex) exists in the array \(inputArray)")
} else {
   print("Index does not exist in the array")
}

输出

Index 3 exists in the array [1, 2, 3, 4, 5]

在这个例子中,我们使用数组的indices属性来检查targetIndex是否存在。indices属性返回数组所有有效索引的范围。我们可以使用contains()方法来检查targetIndex是否在这个范围内。

示例3:使用可选绑定

import Foundation
let inputArray = [1, 2, 3, 4, 5]
let targetIndex = 3
if let _ = inputArray.indices.firstIndex(of: targetIndex) {
   print("Index \(targetIndex) exists in the array \(inputArray)")
} else {
   print("Index does not exist in the array")
}

输出

Index 3 exists in the array [1, 2, 3, 4, 5]

在这个例子中,我们使用数组的indices属性的firstIndex()方法来获取与targetIndex匹配的元素的索引。如果存在这样的索引,该方法将返回它,我们可以使用可选绑定来打印一条消息,说明该索引存在。如果该方法返回nil,则该索引不存在于数组中。

示例4:使用Count属性

import Foundation
let inputArray = [1, 2, 3, 4, 5]
let targetIndex = 3
if targetIndex < inputArray.count {
   print("Index \(targetIndex) exists in the array \(inputArray)")
} else {
   print("Index does not exist in the array")
}

输出

Index 3 exists in the array [1, 2, 3, 4, 5]

在这个例子中,我们检查targetIndex是否小于数组的count属性。如果是,则该索引存在于数组中,我们打印一条消息来说明这一点。如果不是,则该索引不存在于数组中。请注意,我们不需要检查targetIndex是否大于等于0,因为count属性总是非负的。

示例5:使用Guard语句

import Foundation
func checkIndex() {
   let inputArray = [1, 2, 3, 4, 5]
   let targetIndex = 3
   guard targetIndex < inputArray.count else {
      print("Index does not exist in the array")
      return
   }    
   print("Index \(targetIndex) exists in the array \(inputArray)")
}
checkIndex()

输出

Index 3 exists in the array [1, 2, 3, 4, 5]

在这个例子中,我们使用guard语句来检查targetIndex是否小于数组的count属性。如果是,我们打印一条消息,说明该索引存在。如果不是,我们打印一条消息,说明该索引不存在,并从当前作用域返回。

结论

在Swift中,有多种方法可以检查数组中是否存在某个索引。可以使用startIndex和endIndex属性将索引与有效索引范围进行比较,使用indices属性的contains()方法检查索引是否在此范围内,或使用count属性检查索引是否小于数组的长度。

还可以使用guard语句或三元运算符来打印一条消息,说明索引是否存在,或者使用get方法在索引存在的情况下检索该索引处的元素。方法的选择取决于上下文和个人偏好。

更新于:2023年5月4日

3K+ 浏览量

启动你的职业生涯

通过完成课程获得认证

开始学习
广告