Heim >Backend-Entwicklung >Golang >Wie erhalte ich den Unicode-Wert eines Zeichens in Go?
Go-Äquivalent der charCodeAt()-Methode von JavaScript
Die charCodeAt()-Methode in JavaScript ruft den numerischen Unicode-Wert eines Zeichens an einem bestimmten Ort ab Index innerhalb einer Zeichenfolge. Zum Beispiel:
<code class="javascript">"s".charCodeAt(0) // returns 115</code>
In Go ist der Zeichentyp rune, der ein Alias von int32 ist und selbst eine Zahl ist. Daher können Sie den numerischen Unicode-Wert durch direktes Drucken erhalten.
Um das Zeichen an einer bestimmten Position zu erhalten, ist es am einfachsten, die Zeichenfolge in []rune zu konvertieren und dann den Index zu verwenden. Der Weg, eine Zeichenfolge in eine Rune umzuwandeln, ist die Typkonvertierung []rune("some string"):
<code class="go">fmt.Println([]rune("s")[0])</code>
Ausgabe:
115
Um als Zeichen zu drucken, verwenden Sie % Zeichenkette im C-Format:
<code class="go">fmt.Println([]rune("absdef")[2]) // Also prints 115 fmt.Printf("%c", []rune("absdef")[2]) // Prints s</code>
Darüber hinaus iteriert der for-Bereich für die Zeichenfolge über die Runen in der Zeichenfolge, sodass Sie ihn auch verwenden können. Im Vergleich zur Konvertierung in []rune ist diese Methode effizienter:
<code class="go">i := 0 for _, r := range "absdef" { if i == 2 { fmt.Println(r) break } i++ }</code>
Beachten Sie, dass der Zähler i ein separater Zähler sein muss und keine Schleifeniterationsvariable sein darf, da es sich bei Bereichsrückgaben um die Byteposition handelt. nicht der Runenindex (sie unterscheiden sich, wenn die Zeichenfolge Multibyte-Zeichen in UTF-8-Darstellung enthält).
wird in eine Funktion eingeschlossen:
<code class="go">func charCodeAt(s string, n int) rune { i := 0 for _, r := range s { if i == n { return r } i++ } return 0 }</code>
Schließlich beachten Sie bitte, dass Zeichenfolgen in Go in []Byte gespeichert werden, was eine UTF-8-codierte Bytesequenz von Text ist (lesen Sie die Blog Weitere Informationen finden Sie im Artikel „Strings, Bytes, Runen und Zeichen in Go“. Wenn garantiert ist, dass die Zeichenfolge Zeichen mit Codes unter 127 verwendet, können Sie Bytes direkt verwenden. Das heißt, die Indizierung einer Zeichenfolge in Go indiziert ihre Bytes, z. B. ist „s“[0] der Bytewert 115 des Zeichens „s“.
<code class="go">fmt.Println("s"[0]) // Prints 115 fmt.Println("absdef"[2]) // Prints 115</code>
Das obige ist der detaillierte Inhalt vonWie erhalte ich den Unicode-Wert eines Zeichens in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!