Junior — Middle
Co się dzieje, gdy wykonywana jest iteracja po elementach łańcuchowych w programowaniu?
sobes.tech AI
Odpowiedź od AI
W Go, podczas iteracji po ciągu znaków za pomocą pętli for range, przechodzi się przez punkty kodowe Unicode (rune), a nie przez bajty. Oznacza to, że każdy element pętli to znak Unicode, który może zajmować kilka bajtów w UTF-8.
Na przykład:
s := "Привет"
for i, r := range s {
fmt.Printf("Indeks: %d, Runa: %c\n", i, r)
}
Tutaj i to indeks pierwszego bajtu runy w ciągu, a r to sama runa (znak).
W ten sposób iteracja po ciągu znaków w Go pozwala na poprawną obsługę znaków wielojęzycznych i nie łamie znaków wielobajtowych w UTF-8.