如何在Go中反向遍历切片(slice)?
大家好!我刚开始学习Go,遇到了一个任务:需要从末尾到开头遍历切片的元素。在Python中,我习惯直接写 `for i in reversed(arr)`,在JavaScript中则是 `.reverse().forEach(...)`。但据我所知,Go没有内置的反向迭代函数。
以下是我现有的代码示例:
```go
package main
import "fmt"
func main() {
numbers := []int{1, 2, 3, 4, 5}
// 想要输出:5, 4, 3, 2, 1
for i := 0; i < len(numbers); i++ {
fmt.Println(numbers[i]) // 输出 1,2,3,4,5
}
}
```
我尝试修改循环条件:`for i := len(numbers); i > 0; i--`,但这会导致panic(panic: runtime error: index out of range [5] with length 5)。然后我尝试了 `for i := len(numbers) - 1; i > 0; i--`,但这样会跳过第零个元素。最后我卡住了。
请问,如何在Go中正确地实现切片的反向遍历?有没有社区公认的惯用方法?