Junior
Ce reprezintă tipul de date string în limbajul Golang?
sobes.tech AI
Răspuns de la AI
În Golang, string este o secvență imuabilă de octeți.
Caracteristici cheie:
- Imuabilitate: După crearea unui șir, acesta nu poate fi modificat. Orice operație care modifică șirul creează de fapt un șir nou.
- Reprezentare: Șirul conține o secvență de octeți. În mod implicit, Golang presupune că acești octeți reprezintă text codificat în UTF-8.
- Lungime: Lungimea șirului (
len(s)) returnează numărul de octeți din șir, nu numărul de rune (simboluri). - Indexare: Accesul la elementele șirului prin index (
s[i]) returnează octetul de la acel index. - Runes: Pentru a lucra cu caractere (rune), se folosește iterația peste șir cu un ciclu
for range, care decodează UTF-8 și furnizează rune și indicii lor.
Exemplu:
// Inițializarea șirului
s := "Привет, мир!" // 23 octeți, 12 rune
// Lungimea șirului (în octeți)
byteLength := len(s) // 23
// Acces la octet după index
firstByte := s[0] // firstByte = 208 (octet pentru 'П' în UTF-8)
// Iterație peste rune
runeCount := 0
for index, runeValue := range s {
// index - indexul de început al rune în șir (în octeți)
// runeValue - rune decodificat
runeCount++
}
// runeCount = 12