Junior — Middle
Hoe bepaal je de grootte in bytes die één teken in een string inneemt?
sobes.tech AI
Antwoord van AI
In Go vertegenwoordigt een string (string) een reeks bytes in UTF-8-codering. Om te bepalen hoeveel bytes een teken (een rune) inneemt, moet je rekening houden dat verschillende tekens een verschillend aantal bytes kunnen innemen.
Als je de grootte van een specifiek teken in bytes wilt weten, kun je de string converteren naar een slice van runes ([]rune) en de lengte van de originele string vergelijken met die van de rune-slice.
Voorbeeld:
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
s := "Привет"
for i, w := 0, 0; i < len(s); i += w {
r, width := utf8.DecodeRuneInString(s[i:])
fmt.Printf("Symbool: %c neemt %d bytes in\n", r, width)
w = width
}
}
Hier retourneert utf8.DecodeRuneInString de rune en het aantal bytes dat deze inneemt. Op deze manier kan de grootte van elk teken in bytes worden bepaald.