Junior — Middle
Hoe is de interne structuur van het string-type georganiseerd in de programmeertaal Go?
sobes.tech AI
Antwoord van AI
In de programmeertaal Go is een string (string) een onveranderlijk gegevenstype dat een reeks bytes in UTF-8-codering voorstelt. Intern wordt een string geïmplementeerd als een structuur met twee velden:
- een pointer naar een byte-array (een slice van bytes), waar de inhoud van de string wordt opgeslagen;
- de lengte van de string (het aantal bytes).
Dit kan ongeveer als volgt worden voorgesteld:
// vereenvoudigde voorstelling van de interne structuur van string
type stringStruct struct {
ptr *byte // pointer naar de data
len int // lengte in bytes
}
Vanwege de onveranderlijkheid van de string wordt bij wijzigingen een nieuwe kopie van de gegevens gemaakt. Dit zorgt voor veiligheid en eenvoud bij het werken met strings, maar vereist aandacht bij frequente concatenaties (gebruik beter strings.Builder).
Het is ook belangrijk dat de lengte wordt opgeslagen in bytes, niet in Unicode-tekens, dus voor werken met tekens moet je de package unicode/utf8 gebruiken.