Wie erhalte ich den Unicode-Wert eines Zeichens in Go?

Mary-Kate Olsen
Freigeben: 2024-11-04 07:36:01
Original
553 Leute haben es durchsucht

How to Get the Unicode Value of a Character 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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Ausgabe:

115
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!