Sobes.tech
Junior — Middle

Kādas ir īpašības, pārvietojoties pa rakstzīmēm virknes programmēšanā?

sobes.tech AI

Atbilde no AI

Go valodā virknes tiek attēlotas kā baitu secība, bet bieži tās satur UTF-8 kodētos rakstzīmes, kur viena rakstzīme (runa) var aizņemt vairākus baitus. Pārlūkojot virkni pēc indeksiem (piemēram, for i := 0; i < len(s); i++) jūs pārlūkojat baitus, nevis rakstzīmes, kas var novest pie nepareizas daudzbaitu rakstzīmju apstrādes.

Lai pareizi pārlūkotu rakstzīmes, tiek izmantota for range cilpa, kas iterē pār runām (Unicode kodu punktiem):

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

Šeit i ir pirmā baitu indekss runā virknes, bet r ir pati runa. Tas ir svarīgi, lai pareizi strādātu ar daudzvalodu tekstiem un rakstzīmēm ārpus ASCII.