Sobes.tech
Middle

Was ist eine Iteration über eine Zeichenkette mit for range in Go? Was sind die Variablen i und v innerhalb der Schleife, welche Datentypen haben sie?

sobes.tech KI

Antwort von AI

In Go wird die Konstruktion for range verwendet, um über Sammlungen zu iterieren, einschließlich Strings. Beim Iterieren über einen String mit for i, v := range str:

  • i ist der Index des aktuellen Zeichens im String, vom Typ int.
  • v ist der Wert des aktuellen Zeichens, vom Typ rune (Unicode-Codepunkt).

Das ist wichtig, weil Strings in Go Sequenzen von Bytes sind, und range über einen String genau die Rune-Zeichen zurückgibt, die multibyte-Zeichen in UTF-8 korrekt behandeln.

Beispiel:

str := "Привет"
for i, v := range str {
    fmt.Printf("Index: %d, Zeichen: %c, Typ: %T\n", i, v, v)
}

Die Ausgabe zeigt die Byte-Indizes des Anfangs jedes Zeichens und die Zeichen selbst als Runen.