Junior — Middle
Cum sunt implementate șirurile și cum sunt legate de rune în limbajul Go?
sobes.tech AI
Răspuns de la AI
În limbajul Go, șirurile de caractere sunt reprezentate prin tipul string, care este o secvență imuabilă de octeți, de obicei codificată în UTF-8. Asta înseamnă că un șir este o secvență de octeți, nu de caractere.
Runele (rune) sunt un tip care reprezintă un punct de cod Unicode (int32). Pentru a lucra cu caractere Unicode într-un șir, acesta este convertit într-o secvență de rune, ceea ce permite manipularea corectă a caracterelor multibyte.
Exemplu:
s := "Привет"
for i, r := range s {
fmt.Printf("%d: %c\n", i, r) // i — indexul octetului, r — rune (caracter)
}
runes := []rune(s) // conversia șirului în secvență de rune
fmt.Println(runes[0]) // primul caracter ca rune
Prin urmare, în Go, șirurile sunt secvențe de octeți, iar rune-urile sunt caractere Unicode individuale, ceea ce permite lucrul corect cu texte multilingve.