我有一个数组 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/