Senior
Wat is een string in Go? Wat is de structuur en de kenmerken ervan?
sobes.tech AI
Antwoord van AI
In Go is een string een onveranderlijke reeks bytes, meestal een tekst in UTF-8 codering. Structuur-wise wordt een string geïmplementeerd als een structuur met twee velden: een pointer naar een byte-array en een lengte.
Kenmerken van strings in Go:
- Onveranderlijkheid: na creatie kan de string niet worden gewijzigd. Operaties die de inhoud wijzigen, maken een nieuwe string.
- UTF-8: strings slaan bytes op in UTF-8, waardoor werken met Unicode-tekens mogelijk is.
- Toegang per byte: indexering van een string geeft een byte terug, niet een teken (rune). Voor werken met tekens moet je het
unicode/utf8pakket gebruiken of de string converteren naar een rune-slice.
Voorbeeld van een string-structuur (vereenvoudigd):
// string in Go ongeveer zo:
type stringStruct struct {
ptr *byte
len int
}
Voorbeeld van werken met een string:
s := "Привет"
fmt.Println(len(s)) // aantal bytes
runes := []rune(s)
fmt.Println(len(runes)) // aantal tekens (runes)