Sobes.tech
Junior — Middle

Kas vyksta, kai programavime atliekama iteracija per eilutės elementus?

sobes.tech AI

Atsakymas iš AI

Go kalboje, kai kartojate per eilutę naudodami for range ciklą, pereinama pagal Unicode kodinius taškus (rūnas), ne pagal baitus. Tai reiškia, kad kiekvienas ciklo elementas yra Unicode simbolis, kuris UTF-8 gali užimti kelis baitus.

Pavyzdžiui:

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

Čia i yra pirmojo baito indeksas rūnoje eilutėje, o r yra pati rūna (simbolis).

Taip, eilutės iteracija Go leidžia teisingai dirbti su daugiakalbiais simboliais ir nesulaužo daugia baitų simbolių UTF-8.