Sobes.tech
Junior — Middle

Care sunt caracteristicile parcurgerii caracterelor unui șir în programare?

sobes.tech AI

Răspuns de la AI

În Go, șirurile de caractere sunt reprezentate ca o secvență de octeți, dar adesea conțin caractere în codificarea UTF-8, unde un caracter (o rună) poate ocupa mai mulți octeți. Parcurgând un șir după indici (de exemplu, for i := 0; i < len(s); i++) treci prin octeți, nu prin caractere, ceea ce poate duce la o procesare incorectă a caracterelor multibyte.

Pentru a parcurge corect caracterele, se folosește o buclă for range, care iterează peste rune (puncte de cod Unicode):

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

Aici, i este indicele primului octet al rune-ului în șir, iar r este rune-ul în sine. Acest lucru este important pentru a lucra corect cu texte multilingve și caractere în afara ASCII.