Zeichenindizierung in Golang-Strings
Go-Strings werden als Bytefolgen in der UTF-8-Codierung dargestellt. Um auf einzelne Zeichen zuzugreifen, die mehrere Bytes belegen können, kann man die String- oder []Rune-Konvertierung nutzen.
Zugriff auf ASCII-Zeichen
Im Beispiel:
fmt.Print("HELLO"[1])
Auf das Zeichen an Index 1 der Zeichenfolge „HELLO“ wird zugegriffen. Da ASCII-Zeichen nur ein Byte belegen, ist das Ergebnis der Bytewert 69.
Bytes in Zeichen umwandeln
Um den tatsächlichen Zeichenwert zu erhalten, kann das Byte konvertiert werden zu einer Zeichenfolge. Dies stellt eine ordnungsgemäße UTF-8-Verarbeitung sicher:
fmt.Println(string("Hello"[1])) // ASCII only
Zugriff auf Unicode-Zeichen
Für Unicode-Zeichen, die sich über mehrere Bytes erstrecken können, ist die []rune-Konvertierung erforderlich:
fmt.Println(string([]rune("Hello, 世界")[1])) // UTF-8
Runen umwandeln in Bytes
Um eine Rune zurück in ein Byte-Slice umzuwandeln, kann sie als Argument an []byte übergeben werden:
fmt.Println(string([]byte("Hello"))) // ASCII only
Referenzen:
Das obige ist der detaillierte Inhalt vonWie kann ich effizient auf Zeichen in Go-Strings zugreifen und diese konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!