Senior
Ce sunt șirurile în Go? Ce reprezintă sub capotă?
sobes.tech AI
Răspuns de la AI
În Go, un string este o secvență imuabilă de octeți, reprezentând de obicei text în codificarea UTF-8. În spate, un string este implementat ca o structură cu două câmpuri: un pointer către un tablou de octeți și o lungime. Asta înseamnă că un string este o felie de octeți, dar fără posibilitatea de a modifica conținutul.
Exemplu de reprezentare internă (simplificat):
// type stringStruct struct {
// ptr *byte
// len int
// }
Din cauza imuabilității, orice operație care modifică conținutul creează un nou string. Este important să țineți cont de acest lucru atunci când lucrați cu stringuri mari pentru a optimiza performanța.