Zugriff auf Zeichen in Golang-Strings
In Go unterscheidet sich der Zugriff auf Zeichen aus einem String vom ASCII-Gegenstück, da stattdessen der zugrunde liegende Bytewert zurückgegeben wird der Charakter. Da Zeichenfolgen Byte-Arrays darstellen, führt das Abrufen des ersten Zeichens zu seiner numerischen ASCII-Darstellung. Beispielsweise gibt „HALLO“[1] 69 anstelle des beabsichtigten „E“ zurück.
Lösung: Konvertieren in ASCII- oder Unicode-Codepunkte
Um das tatsächliche zu erhalten Um Ihren Charakter zu verbessern, sollten Sie die folgenden Techniken anwenden:
1. ASCII (Einzelbyte-Zeichen):
Konvertieren Sie den Bytewert in eine Zeichenfolge und geben Sie effektiv das ASCII-Zeichen zurück:
fmt.Println(string("Hello"[1])) // Prints "e"
2. Unicode (Multi-Byte-Zeichen):
Konvertieren Sie die Zeichenfolge in ein Runenstück (Unicode-Codepunkte) und greifen Sie auf die gewünschte Position zu:
fmt.Println(string([]rune("Hello, 世界")[1])) // Prints "e" (ASCII) fmt.Println(string([]rune("Hello, 世界")[8])) // Prints "界" (UTF-8)
Zusätzliche Hinweise :
Das obige ist der detaillierte Inhalt vonWie greife ich korrekt auf Zeichen in Go-Strings zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!