Was ist Rune in Golang? Wie verwendet man Rune in Golang? Dieser Artikel gibt Ihnen die Antwort.

Früher gab es nur einen Zeichensatz namens ASCII (American Standard Code for Information Interchange). Damals nutzten wir 7 Bit zur Darstellung von 128 Zeichen, darunter englische Groß- und Kleinbuchstaben, Zahlen sowie verschiedene Satzzeichen und Gerätesteuerungszeichen. Aufgrund dieser Zeichenbeschränkung konnte die Mehrheit der Bevölkerung kein eigenes Schriftsystem verwenden. Um dieses Problem zu lösen, wurde Unicode entwickelt. Unicode ist eine Obermenge von ASCII und enthält alle Zeichen der heutigen Schriftsysteme weltweit. Unicode umfasst Akzente, diakritische Zeichen, Steuercodes wie Tabulatoren und Zeilenumbrüche. Jedem Zeichen wird eine Standardnummer zugewiesen, die „Unicode Code Point“ oder in Go „Rune“ genannt wird. Der Typ „Rune“ ist ein Alias für int32.
Wichtige Punkte zu Runen in Golang
- Denken Sie immer daran: Ein String ist eine Bytefolge, keine Rune. Ein String kann Unicode-Text enthalten, der in UTF-8 kodiert ist. Da Go-Quellcode jedoch in UTF-8 kodiert ist, ist eine UTF-8-Kodierung des Strings nicht erforderlich.
- UTF-8 kodiert sämtliche Unicode-Zeichen im Bereich von 1 bis 4 Bytes, wobei 1 Byte für ASCII und der Rest für Runen verwendet wird.
- ASCII enthält insgesamt 256 Elemente, davon 128 Zeichen und 0-127 Codepunkte. Ein Codepunkt bezeichnet hier ein Element, das einen einzelnen Wert darstellt.
Zum Beispiel:
♄
Dies ist eine Rune mit dem Hexadezimalwert ♄.
Die wahre Bedeutung der Runen
Es stellt eine Runenkonstante dar, einen ganzzahligen Wert, der einen Unicode-Codepunkt identifiziert. In Go wird ein Runenliteral als ein oder mehrere in Klammern eingeschlossene Zeichen wie „g“, „\t“ usw. dargestellt. Zwischen den Klammern sind beliebige Zeichen außer Zeilenumbrüchen und Klammern ohne Escapezeichen zulässig. Die in diesen Klammern eingeschlossenen Zeichen stellen den Unicode-Wert des jeweiligen Zeichens selbst dar, und mehrstellige Zeichenfolgen mit einem Backslash (am Anfang einer mehrstelligen Zeichenfolge) kodieren die Werte in einem anderen Format. In einem Runenliteral sind alle Zeichenfolgen, die mit einem Backslash beginnen, ungültig. Nur die folgenden einfach maskierten Zeichen stellen spezielle Werte dar, wenn sie mit einem Backslash verwendet werden:
| Charakter |
Unicode |
Beschreiben |
| \A |
U+0007 |
Alarm oder Klingel |
| \B |
U+0008 |
Rücktaste |
| \F |
U+000C |
Formulardaten |
| \N |
U+000A |
Zeilenvorschub oder Zeilenumbruch |
| \R |
U+000D |
Zurück zum Zeilenanfang |
| \T |
U+0009 |
Horizontale Registerkarte |
| \v |
U+000b |
Vertikale Registerkarte |
| \\ |
U+005c |
Backslash |
| \' |
U+0027 |
Apostroph |
| \” |
U+0022 |
Doppelte Anführungszeichen (nur in Zeichenfolgen gültig) |
Zum Beispiel:
//Minh họa chương trình Go đơn giản về cách tạo một rune
package main
import (
"fmt"
"reflect"
)
func main() {
// Tạo một rune
rune1 := 'B'
rune2 := 'g'
rune3 := '\a'
// Hiện rune và kiểu của nó
fmt.Printf("Rune 1: %c; Unicode: %U; Type: %s", rune1,
rune1, reflect.TypeOf(rune1))
fmt.Printf("\nRune 2: %c; Unicode: %U; Type: %s", rune2,
rune2, reflect.TypeOf(rune2))
fmt.Printf("\nRune 3: Unicode: %U; Type: %s", rune3,
reflect.TypeOf(rune3))
}
Ergebnis:
Rune 1: B; Unicode: U+0042; Type: int32
Rune 2: g; Unicode: U+0067; Type: int32
Rune 3: Unicode: U+0007; Type: int32
Beispiel 2:
![So verwenden Sie Rune in Golang So verwenden Sie Rune in Golang]()
Ergebnis:
Character: ♛, Unicode:U+265B, Position:0
Character: ♠, Unicode:U+2660, Position:1
Character: ♧, Unicode:U+2667, Position:2
Character: ♡, Unicode:U+2661, Position:3
Character: ♬, Unicode:U+266C, Position:4