Junior — Middle
Welche Besonderheiten gibt es beim Durchlaufen der Zeichen einer Zeichenkette in der Programmierung?
sobes.tech KI
Antwort von AI
In Go werden Strings als Folge von Bytes dargestellt, enthalten aber häufig Zeichen in UTF-8-Codierung, bei denen ein Zeichen (eine Rune) mehrere Bytes einnehmen kann. Beim Durchlaufen eines Strings nach Indizes (z.B. for i := 0; i < len(s); i++) durchlaufen Sie die Bytes, nicht die Zeichen, was zu einer fehlerhaften Verarbeitung von Mehrbyte-Zeichen führen kann.
Um die Zeichen korrekt zu durchlaufen, verwendet man eine for range-Schleife, die über die Runen (Unicode-Codepunkte) iteriert:
s := "Привет"
for i, r := range s {
fmt.Printf("Index: %d, Zeichen: %c\n", i, r)
}
Hier ist i der Index des ersten Bytes der Rune im String, und r ist die Rune selbst. Das ist wichtig, um richtig mit mehrsprachigen Texten und Zeichen außerhalb von ASCII zu arbeiten.