Sobes.tech
Junior — Middle

Mis juhtub, kui programmeerimises tehakse iteratsioon stringi elementide üle?

sobes.tech AI

Vastus AI-lt

Go keeles, kui teete stringi läbi for range tsükli, läbite Unicode koodipunktide (rune'ide) kaudu, mitte baitide. See tähendab, et iga tsükli element on Unicode märk, mis võib UTF-8-s võtta mitu baiti.

Näiteks:

s := "Привет"
for i, r := range s {
    fmt.Printf("Indeks: %d, Ruun: %c\n", i, r)
}

Siin on i indeksi esimese bait'i rune'is stringis, ja r on ise rune (märk).

Sellisel viisil võimaldab stringi läbimine Go-s õigesti töötada mitmekeelse märkidega ning ei murra UTF-8 mitme baitiga märke.