Sobes.tech
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.