Junior — Middle
Wie bestimmt man die Größe in Bytes, die ein einzelnes Zeichen in einer Zeichenkette einnimmt?
sobes.tech KI
Antwort von AI
In Go stellt eine Zeichenkette (string) eine Folge von Bytes in UTF-8-Codierung dar. Um zu bestimmen, wie viele Bytes ein Zeichen (eine Rune) einnimmt, muss man berücksichtigen, dass verschiedene Zeichen unterschiedlich viele Bytes benötigen.
Wenn du die Größe eines bestimmten Zeichens in Bytes wissen möchtest, kannst du die Zeichenkette in ein Slice von Runen ([]rune) umwandeln und die Länge der ursprünglichen Zeichenkette mit der Länge des Rune-Slices vergleichen.
Beispiel:
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("Zeichen: %c nimmt %d Bytes ein\n", r, width)
w = width
}
}
Hier gibt utf8.DecodeRuneInString die Rune und die Anzahl der Bytes zurück, die sie einnimmt. Auf diese Weise kann die Größe jedes Zeichens in Bytes bestimmt werden.