Zugriff auf Zeichen in einem Go-String
Diese Frage untersucht, wie auf Zeichen in einem Go-String zugegriffen wird, und geht dabei auf die Natur von Strings als Slices ein von Bytes und die Beziehung zwischen Zeichen, Runen und Unicode-Codepunkten.
Original Frage:
Wie kann ich beim Zugriff auf „HELLO“[1] das Zeichen „E“ anstelle des Zahlenwerts 69 erhalten?
Antwort:
Um Zeichen aus einer Zeichenfolge abzurufen, muss man die Zeichendarstellung von Go verstehen. Interpretierte Zeichenfolgenliterale sind in UTF-8 codierte Zeichenfolgen, wobei ASCII-Zeichen nur ein Byte belegen. Um das Zeichen „E“ zu erhalten, ist daher die folgende Konvertierung erforderlich:
fmt.Println(string("Hello"[1])) // ASCII only
Alternative: Verwendung von Runen
Für Unicode-Unterstützung Runen, die Unicode darstellen Codepunkte, verwendet werden können. Diese sind mit UTF-8-Zeichenfolgen kompatibel:
fmt.Println(string([]rune("Hello, 世界")[1])) // UTF-8
Dieser Code gibt das „e“-Zeichen aus.
Gos Zeichenhandhabungsfunktionen
Es ist erwähnenswert, dass Go Funktionen zum Konvertieren zwischen Zeichen und Bytes bereitstellt. Beispielsweise wandelt die Methode byte(c) ein Zeichen (Rune) in das entsprechende Byte um, während rune(b) ein Byte in ein Zeichen umwandelt.
Zusätzliche Lesungen:
Das obige ist der detaillierte Inhalt vonWie greife ich auf einzelne Zeichen in einem Go-String statt auf deren numerische Werte zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!