swift - 从数组中获取范围时为 "Array index is out of range:"

标签 swift

我有一个数组 anArray我想通过指定范围 range 创建一个子数组, 喜欢:

 var range: Range<Int>
 guard let slice = anArray[range] else {
      return nil
 }
我遇到了代码抛出 "Array index is out of range:" 的问题异常(exception)。
 var range: Range<Int>
 guard range.upperBound > anArray.count - 1 else {
        return nil
    }
 guard let slice = anArray[range] else {
      return nil
 }
但我看到让数组超出范围异常。你能告诉我我错过了什么吗?

最佳答案

您的运算符(operator)向后, guard 应该确保

guard range.upperBound <= anArray.count - 1 else { ...
不是 >(如果条件为真,守卫将跳过 else 块——它不是一个 if,它是一个 else)。

关于swift - 从数组中获取范围时为 "Array index is out of range:",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64144427/

相关文章:

objective-c - 创建自定义弹出式插页式广告的最佳方式是什么?

swift - 从 Alamofire 获取返回的错误信息

ios - 将多个数据附加到 URLRequest 的 httpbody

ios - LMColumnView 和 LMRowView 始终保持左右间距

swift 3 和火力地堡 : Retrieve auto id value from snapshot

json - 在 Swift 中将字典转换为 JSON

ios - CRC16-CCITT计算

swift - alamofire 中的证书固定是错误的

ios - 如何从当前 View Controller 中弹出上一个 View Controller ?

ios - xcode UILabel 文本适合 Storyboard 但不适合设备