Heim  >  Artikel  >  Backend-Entwicklung  >  Gibt es einen Zeichentyp in der Go-Sprache?

Gibt es einen Zeichentyp in der Go-Sprache?

青灯夜游
青灯夜游Original
2021-06-04 17:08:242055Durchsuche

In der Go-Sprache gibt es zwei Zeichentypen: 1. Byte-Typ, auch Uint8-Typ genannt, der ein Zeichen im ASCII-Code darstellt; 2. Rune-Typ, der ein UTF-8-Zeichen darstellt, wenn Chinesisch verarbeitet werden muss , japanische oder andere zusammengesetzte Zeichen, müssen Sie den Runentyp verwenden. Der Rune-Typ entspricht dem Typ int32.

Gibt es einen Zeichentyp in der Go-Sprache?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, GO 1.11.2, Dell G3-Computer.

Jedes Element in einer Zeichenfolge wird als „Zeichen“ bezeichnet. Zeichen können beim Durchlaufen oder beim individuellen Abrufen von Zeichenfolgenelementen abgerufen werden.

In der Go-Sprache gibt es zwei Zeichentypen:

  • Einer ist der Typ uint8 oder Byte-Typ, der ein Zeichen im ASCII-Code darstellt.

  • Der andere ist der Runentyp, der ein UTF-8-Zeichen darstellt. Wenn Sie chinesische, japanische oder andere zusammengesetzte Zeichen verarbeiten müssen, müssen Sie den Runentyp verwenden. Der Rune-Typ entspricht dem Typ int32. Der Typ

byte ist ein Alias ​​für uint8, was für herkömmliche ASCII-codierte Zeichen, die nur 1 Byte belegen, völlig in Ordnung ist, wie z. B. var ch byte = 'A', und die Zeichen werden in einfache Anführungszeichen gesetzt.

In der ASCII-Codetabelle beträgt der Wert von A 65 und in der Hexadezimalschreibweise 41, sodass die folgende Schreibweise äquivalent ist:

var ch byte = 65 或 var ch byte = '\x41'      //(\x 总是紧跟着长度为 2 的 16 进制数)

Eine andere mögliche Schreibweise besteht darin, eine Oktalzahl der Länge 3 einzufügen, wie 377.

Die Go-Sprache unterstützt auch Unicode (UTF-8), daher werden Zeichen auch als Unicode-Codepunkte oder Runen bezeichnet und im Speicher durch int dargestellt. In Dokumenten wird im Allgemeinen das Format U+hhhh verwendet, wobei h eine Hexadezimalzahl darstellt.

Beim Schreiben von Unicode-Zeichen müssen Sie das Präfix u oder U vor der Hexadezimalzahl hinzufügen. Da Unicode mindestens 2 Bytes belegt, verwenden wir zur Darstellung den Typ int16 oder int. Wenn Sie 4 Bytes verwenden müssen, verwenden Sie das Präfix u. Wenn Sie 8 Bytes verwenden müssen, verwenden Sie das Präfix U.

var ch int = '\u0041'
var ch2 int = '\u03B2'
var ch3 int = '\U00101234'
fmt.Printf("%d - %d - %d\n", ch, ch2, ch3) // integer
fmt.Printf("%c - %c - %c\n", ch, ch2, ch3) // character
fmt.Printf("%X - %X - %X\n", ch, ch2, ch3) // UTF-8 bytes
fmt.Printf("%U - %U - %U", ch, ch2, ch3)   // UTF-8 code point

Der Formatbezeichner %c wird zur Darstellung von Zeichen verwendet. Bei Verwendung in Verbindung mit Zeichen gibt %v oder %d eine Ganzzahl aus, die zur Darstellung des Zeichens verwendet wird Zeichenfolge.

Das Unicode-Paket verfügt über einige integrierte Funktionen zum Testen von Zeichen. Der Rückgabewert dieser Funktionen ist ein boolescher Wert, wie unten gezeigt (wobei ch ein Zeichen darstellt):

    Bestimmen Sie, ob es sich um einen Buchstaben handelt: Unicode. IsLetter(ch)
  • Beurteilen Sie, ob es sich um eine Zahl handelt: unicode.IsDigit(ch)
  • Beurteilen Sie, ob es sich um ein Leerzeichen handelt: unicode.IsSpace(ch)
  • Empfohlenes Lernen:
Golang-Tutorial

Das obige ist der detaillierte Inhalt vonGibt es einen Zeichentyp in der Go-Sprache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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