Heim >Backend-Entwicklung >Golang >Wie greift man auf Bytes und Runen in Go-Strings zu?
Byte-Zugriff und -Konvertierung in Go-Strings
In Go speichern Strings UTF-8-codierte Bytes, keine Zeichen oder Runen. Der Zugriff auf Elemente einer Zeichenfolge, die als str[i] bezeichnet wird, gibt ein Byte (Byte oder uint8) zurück, anstatt es in eine Rune umzuwandeln.
Bei der Iteration über eine Zeichenfolge mit dem for ... Range-Konstrukt werden Sie kann entweder auf Bytes oder Runen zugreifen. Durch die Indizierung einer Zeichenfolge (z. B. str[i]) wird direkt auf Bytes zugegriffen, während die Schleife ohne Konvertierung (für i := range str) über Runen iteriert.
Überlegungen zur Leistung
Das Konvertieren einer Zeichenfolge in ein Byte-Slice mit []byte(str) führt keine tatsächliche Kopie durch; es ist wegoptimiert. Daher gibt es keinen Leistungsunterschied zwischen den beiden vorgestellten Methoden:
str := "large text" for i := range str { // use str[i] }
str := "large text" str2 := []byte(str) for _, s := range str2 { // use s }
Für maximale Leistung und Klarheit des Codes wird jedoch empfohlen, die Methode zu verwenden, die der Absicht des Codes entspricht:
Zeicheniteration
Beim Durchlaufen von Runenzeichen in einer Zeichenfolge ist es wichtig zu beachten, dass Multibyte-Zeichen, wie z Unicode-Zeichen können durch mehrere Bytes in der zugrunde liegenden UTF-8-Codierung dargestellt werden. Die for ... range str-Syntax verarbeitet dies automatisch und gibt den Byteindex und den Zeichenwert (Rune) bei jeder Iteration zurück.
Zusätzliche Ressourcen
Das obige ist der detaillierte Inhalt vonWie greift man auf Bytes und Runen in Go-Strings zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!