Avatar ·

¿Cómo iterar sobre un slice en orden inverso en Go?

¡Hola a todos! Acabo de empezar a aprender Go y me encontré con esta tarea: necesito recorrer los elementos de un slice desde el final hasta el principio. En Python estoy acostumbrado a escribir `for i in reversed(arr)`, en JavaScript — `.reverse().forEach(...)`. Pero en Go, según entiendo, no hay una función incorporada para la iteración inversa. Aquí hay un ejemplo de código que tengo: ```go package main import "fmt" func main() { numbers := []int{1, 2, 3, 4, 5} // Quiero imprimir: 5, 4, 3, 2, 1 for i := 0; i < len(numbers); i++ { fmt.Println(numbers[i]) // imprime 1,2,3,4,5 } } ``` Intenté cambiar la condición del loop: `for i := len(numbers); i > 0; i--`, pero esto causa un panic (panic: runtime error: index out of range [5] with length 5). Luego intenté `for i := len(numbers) - 1; i > 0; i--`, pero entonces se omite el elemento cero. Al final me quedé atascado. Por favor, indíquenme cómo organizar correctamente un recorrido inverso sobre un slice en Go. ¿Hay alguna forma idiomática aceptada por la comunidad?