Junior — Middle
Millised on omadused, kui käia läbi stringi sümbolid programmeerimisel?
sobes.tech AI
Vastus AI-lt
Go keeles stringid on esitatud baitide jada, kuid sageli sisaldavad need UTF-8 kodeeringus märke, kus üks märk (runa) võib võtta mitu baiti. Stringi indeksite järgi läbimine (näiteks for i := 0; i < len(s); i++) läbib baitide jada, mitte märkide, mis võib viia mitmebaita märkide ebaõige töötlemiseni.
Õige märkide läbimiseks kasutatakse for range tsüklit, mis iteratsioonide Unicode koodipunktide (runade) üle:
s := "Привет"
for i, r := range s {
fmt.Printf("indeks: %d, märk: %c\n", i, r)
}
Siin on i indeksi esimese baitu indeks stringis, ja r on ise runa. See on oluline, et õigesti töötada mitmekeelse tekstide ja ASCII väljaspool olevate märkidega.