Sobes.tech
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