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