Wie iteriere ich über einen Slice in umgekehrter Reihenfolge in Go?
Hallo zusammen! Ich habe gerade angefangen, Go zu lernen, und bin auf folgendes Problem gestoßen: Ich muss die Elemente eines Slices vom Ende zum Anfang durchlaufen. In Python bin ich es gewohnt, einfach `for i in reversed(arr)` zu schreiben, in JavaScript `.reverse().forEach(...)`. Aber in Go gibt es, soweit ich weiß, keine eingebaute Funktion für die umgekehrte Iteration.
Hier ist ein Beispielcode, den ich habe:
```go
package main
import "fmt"
func main() {
numbers := []int{1, 2, 3, 4, 5}
// Möchte ausgeben: 5, 4, 3, 2, 1
for i := 0; i < len(numbers); i++ {
fmt.Println(numbers[i]) // gibt 1,2,3,4,5 aus
}
}
```
Ich habe versucht, die Schleifenbedingung zu ändern: `for i := len(numbers); i > 0; i--`, aber das verursacht eine Panik (panic: runtime error: index out of range [5] with length 5). Dann habe ich `for i := len(numbers) - 1; i > 0; i--` versucht, aber dann wird das nullte Element übersprungen. Am Ende bin ich steckengeblieben.
Könnt ihr mir bitte sagen, wie man in Go richtig einen umgekehrten Durchlauf über einen Slice macht? Gibt es eine idiomatische Methode, die in der Community üblich ist?
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs