Hoe kun je werken met strings in de programmeertaal Go?
sobes.tech AI
Antwoord van AI
Strings in Go zijn onveranderlijke sequenties van bytes. Ze kunnen zowel UTF-8 tekst als willekeurige binaire gegevens vertegenwoordigen.
Belangrijkste manieren van werken:
-
Declaratie en initialisatie:
var s1 string // Lege string s2 := "hallo" // Initialisatie met stringliteraal s3 := `meerdere regels string` // Ruwe stringliteraal -
Lengte van de string:
len(s2) // Lengte in bytes. Voor "hallo" is dat 5. -
Toegang tot bytes:
b := s2[0] // Byte op index. Geeft 'h' (in UTF-8).Directe toegang tot bytes garandeert niet dat je een volledige UTF-8 teken krijgt.
-
Toegang tot runen (UTF-8 tekens): Strings kunnen worden geïtereerd op runen:
for index, runeValue := range s2 { fmt.Printf("Index: %d, Runes: %c\n", index, runeValue) }Lengte in runen:
utf8.RuneCountInString(s2) // Lengte in runen. Voor "hallo" is dat 5. -
Samenvoegen van strings:
str1 := "hello" str2 := " world" result := str1 + str2 // Samenvoegen met +Voor efficiënte samenvoeging van veel strings, gebruik
strings.Builder.var sb strings.Builder sb.WriteString("hello") sb.WriteString(" ") sb.WriteString("world") result := sb.String() // Verkrijg de resulterende string -
Conversie tussen strings en byte/rune slices:
byteslice := []byte(s2) // String naar byte slice rs := []rune(s2) // String naar rune slice backToString := string(byteslice) // Byte slice naar string backToString = string(rs) // Rune slice naar string -
stringspakket: Biedt veel nuttige functies:Contains,HasPrefix,HasSuffixIndex,LastIndexReplace,ToUpper,ToLower,Trim,TrimSpaceSplit,Join
-
strconvpakket: Voor het converteren van strings naar andere datatypes (getallen, booleans) en vice versa.i, err := strconv.Atoi("123") // String naar int s := strconv.Itoa(456) // Int naar string -
Onveranderlijkheid: Elke operatie die lijkt de string te wijzigen (bijvoorbeeld concatenatie), creëert in werkelijkheid een nieuwe string. Dit is belangrijk voor prestaties bij frequente wijzigingen. In dergelijke gevallen is het beter
[]byteofstrings.Builderte gebruiken.