Kann man eine Schleife über ein Array oder eine Liste ausführen, die ohne Parameter deklariert wurde?
sobes.tech KI
Antwort von AI
In Go haben Arrays und Slices einen strikt definierten Typ, einschließlich des Elementtyps und der Länge (bei Arrays). Wenn ein Array ohne Angabe der Länge deklariert wird, z.B. var arr []int, ist es ein Slice, kein Array. Man kann eine for range-Schleife über ein Slice ohne Probleme ausführen.
Wenn jedoch ein Array ohne Angabe der Länge deklariert wird, z.B. arr := [...]int{1,2,3}, wird die Länge vom Compiler bestimmt, und man kann auch darüber iterieren.
Wenn ein Array jedoch ohne Parameter überhaupt deklariert wird, z.B. var arr [], ist das syntaktisch in Go nicht korrekt — der Typ muss vollständig angegeben werden.
Beispiel für eine korrekte Schleife über ein Slice:
arr := []int{1, 2, 3}
for i, v := range arr {
fmt.Println(i, v)
}
Daher kann man eine Schleife über ein Array oder Slice ausführen, wenn Typ und Länge (bei Arrays) bekannt sind. Eine Parametrierung ohne Parameter ist nicht möglich.