Avatar ·

如何在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中正确地实现切片的反向遍历?有没有社区公认的惯用方法?