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