Sobes.tech
Junior — Middle

Wat vertegenwoordigt het resultaat van het uitvoeren van de []-operator voor het stringtype?

sobes.tech AI

Antwoord van AI

In Go wordt de operator [] voor het datatype string gebruikt om een slice van bytes van de string te krijgen of een enkel byte op index. De string in Go is een onveranderlijke sequentie van bytes (UTF-8). Bij toegang tot str[i] wordt een byte van het type byte (alias voor uint8) geretourneerd, en niet een teken in de gebruikelijke zin, omdat Unicode-tekens uit meerdere bytes kunnen bestaan.

Voorbeeld:

s := "Привет"
fmt.Println(s[0])       // Toont de byte die overeenkomt met het eerste deel van het teken 'П'
fmt.Println(string(s[0])) // Toont een incorrect teken, omdat het geen volledige UTF-8-teken is

// Om tekens (runes) te krijgen, moet de string worden geconverteerd naar een slice van runes:
r := []rune(s)
fmt.Println(string(r[0])) // Toont 'П'

Dus, de operator [] voor strings geeft een byte terug op index, niet een Unicode-teken.