我是 Swift 的新手,我真的很困惑如何使用 for 回圈向后迭代。
我的陣列:
let arr = ["a", "b", "c"]
嘗試我用谷歌搜索的 for 回圈:
for i in stride(from: arr.count, through: 0, by: -1) {
print(arr[i]) }
輸出:由信號 4 終止
另一種無效的嘗試:
for i in arr.count...0 {
print(arr[i])
}
我究竟做錯了什么?
uj5u.com熱心網友回復:
它們都不起作用,因為您從 開始arr.count,這始終是陣列的無效索引。最后一個有效索引是arr.count - 1,因此將步幅/范圍的開始更改為該索引將解決問題。
如果你想反向遍歷索引,你可以得到indices和reverse它:
for i in arr.indices.reversed() {
let element = arr[i]
}
或者,您可以使用enumerated().reversed(),但請注意,reversed()此處將首先創建一個額外的陣列來保存反向索引和元素,這意味著您將回圈arr額外的時間。
for (i, element) in arr.enumerated().reversed() {
}
uj5u.com熱心網友回復:
你錯過了陣列索引——在幾乎所有的編程語言中——都是從零開始的,所以最后一個索引是 count - 1
for i in stride(from: arr.count - 1, through: 0, by: -1) {
print(arr[i])
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/343076.html
上一篇:從特定行回圈PS
