


Es gibt verschiedene Arten von lexikalischen Elementen in der Go-Sprache
Es gibt 5 Kategorien lexikalischer Elemente in der Go-Sprache: 1. Bezeichner, das sind Zeichenfolgen, die aus mehreren Buchstaben (codiert durch Unicode), Unterstrichen und Zahlen bestehen; 2. Schlüsselwörter, die von der Programmiersprache reserviert und nicht erlaubt sind Für Programmierer können Zeichenfolgen, die als Bezeichner verwendet werden, auch als reservierte Wörter bezeichnet werden. 3. Operatoren sind Symbole, die zum Ausführen bestimmter arithmetischer Operationen oder logischer Operationen verwendet werden. 5. Literale sind eine Notation für Werte.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.
Die Sprachsymbole der Go-Sprache werden auch als lexikalische Elemente bezeichnet und umfassen fünf Kategorien: Bezeichner, Schlüsselwort, Operator, Trennzeichen und Literal. Sie sind die grundlegendsten Einheiten, aus denen Codes und Programme der Go-Sprache bestehen.
Normalerweise werden Leerzeichen, horizontale Tabulatoren, Wagenrückläufe und Zeilenvorschübe ignoriert, es sei denn, sie sind Teil des Trennzeichens zwischen mehreren Sprachsymbolen. In der Go-Sprache ist es nicht erforderlich, Semikolons explizit einzufügen. Bei Bedarf fügt die Go-Sprache automatisch Semikolons in den Code ein, um Anweisungen zu trennen.
Der Go-Sprachcode besteht aus mehreren Unicode-Zeichen. Alle Quellcodes der Go-Sprache müssen im UTF-8-Kodierungsformat der Unicode-Kodierungsspezifikation kodiert sein (d. h. die Quellcodedateien der Go-Sprache müssen in geschrieben sein). das UTF-8-Codierungsformat).
Die Sprachsymbole der Go-Sprache werden auch lexikalische Elemente genannt, die 5 Kategorien umfassen: Bezeichner(Bezeichner), Schlüsselwort(Schlüsselwort), Operator(Operator), Trennzeichen(Trennzeichen) und Literal (wörtlich). Im Allgemeinen werden Leerzeichen, horizontale Tabulatoren, Wagenrückläufe und Zeilenvorschübe ignoriert, es sei denn, sie werden als Teil eines Trennzeichens zwischen mehreren Sprachsymbolen verwendet. In der Go-Sprache ist es nicht erforderlich, Semikolons explizit einzufügen. Bei Bedarf fügt die Go-Sprache automatisch Semikolons in den Code ein, um Anweisungen zu trennen.
Der Go-Sprachcode besteht aus mehreren Unicode-Zeichen. Alle Quellcodes der Go-Sprache müssen im UTF-8-Kodierungsformat der Unicode-Kodierungsspezifikation kodiert sein (d. h. die Quellcodedateien der Go-Sprache müssen in geschrieben sein). das UTF-8-Codierungsformat).
1. Bezeichner
Der Bezeichner der Go-Sprache ist eine Zeichenfolge, die aus mehreren Buchstaben (codiert durch Unicode) besteht, wobei das erste Zeichen der Zeichenfolge ein Buchstabe sein muss.
Hinweis:
Im Go-Sprachcode muss jede Kennung vor der Verwendung deklariert werden.
Eine Deklaration bindet einen nicht leeren Bezeichner an eine Konstante, einen Typ, eine Variable, eine Funktion oder ein Codepaket.
Im selben Codeblock ist die wiederholte Deklaration desselben Bezeichners nicht zulässig (außer bei Zuweisungsanweisungen).
Bezeichner in einer Quellcodedatei und einem Codepaket müssen dieser Regel folgen.
Der Geltungsbereich eines deklarierten Bezeichners ist derselbe wie der Geltungsbereich des Codeblocks, zu dem er direkt gehört.
Streng genommen ist die Codepaket-Deklarationsanweisung keine Deklaration. Weil der Name des Codepakets in keinem Bereich erscheint. Der Zweck der Codepaket-Deklarationsanweisung besteht darin, festzustellen, ob mehrere Quellcodedateien zum selben Codepaket gehören, oder beim Importieren des Codepakets den Standard-Codepaket-Referenznamen anzugeben.
Qualifizierte Bezeichner werden verwendet, um auf Variablen oder Typen in anderen Codepaketen zuzugreifen. Wenn ich beispielsweise auf eine Konstante namens O_RDONLY im Codepaket os zugreifen muss, muss ich os.O_RDONLY so schreiben.
Qualifizierte Bezeichner können verwendet werden, und es müssen zwei Voraussetzungen erfüllt sein:
Das Codepaket, auf das zugegriffen werden soll, muss im Voraus importiert werden;
Der Bezeichner in diesem Codepaket muss exportierbar sein.
Ein exportierbarer Bezeichner muss außerdem zwei Voraussetzungen erfüllen:
Das erste Zeichen im Bezeichnernamen muss ein Großbuchstabe sein (Go-Sprache basiert auf der Groß- und Kleinschreibung des ersten Zeichens im Bezeichnernamen, um die Zugriffsberechtigungen dafür zu bestimmen Bezeichner: Wenn das erste Zeichen des Bezeichnernamens ein Großbuchstabe ist, sind seine Zugriffsberechtigungen „öffentlich“, das heißt, der Bezeichner kann von jedem Code in jedem Codepaket verwendet werden, indem der Bezeichnerzugriff qualifiziert wird In Kleinbuchstaben ist seine Zugriffsberechtigung „privat auf Paketebene“, d. h. nur Code im selben Codepaket wie der Bezeichner kann darauf zugreifen). Paket oder der Name eines Felds oder einer Methode, die zu einem Strukturtyp gehört.
-
Vordefinierte Bezeichner für die Go-Sprache:
- Die Namen aller grundlegenden Datentypen.
- Fehler beim Schnittstellentyp
- Konstante true, false und iota
- Die Namen aller integrierten Funktionen, nämlich append, cap, close, complex, copy, delete, imag, len, make, new, panic, print, println , real und erholen.
In der Go-Sprache gibt es einen leeren Bezeichner, der durch einen Unterstrich dargestellt wird und im Allgemeinen in einer Deklaration verwendet wird, die keine Einführung einer neuen Bindung erfordert. Wenn wir beispielsweise die Initialisierungsfunktion nur in einem bestimmten Codepaket ausführen möchten, ohne Programmentitäten in diesem Codepaket zu verwenden, können wir die folgende Importanweisung schreiben:
wobei „ runtime/cgo " stellt die Kennung eines Standardbibliothekscodepakets dar.
2. Schlüsselwörter
Schlüsselwörter (auch reservierte Wörter genannt) sind Zeichenfolgen, die von Programmiersprachen reserviert sind und von Programmierern nicht als Bezeichner verwendet werden.
Kategorie Schlüsselwörter Programmdeklaration Import, Paket Programmentitätsdeklaration und -definition chan, const, func, interface, map, struct, type, var Programmkontrollfluss go, select, break, case, continue, default, defer, else, fallthrough, for, goto, if, range, return, switch
在Go语言中,程序实体的声明和定义是建立在其数据类型的体系之上的。例如关键字chan、func、interface、map和struct,分别于Go语言的复合数据类型Channel(通道)、Function(函数)、Interface(接口)、Map(字典)和Struct(结构体)相对应。
程序控制流程的关键字,一共15个。其中go和select,这两个主要用于Go语言并发编程。
3、字面量
简单来说,字面量就是值的一种标记法。但是,在Go中,字面量的含义要更加广泛一些。
Go语言代码中用到的字面量有以下3类:
1、表示基础数据类型值的各种字面量。例如,表示浮点数类型值的12E-3。
2、构造各种自定义的复合数据类型的类型字面量。例如,下面表示一个名称为Person的自定义结构体类型:
3、表示复合数据类型的值的复合字面量
被用来构造类型Struct(结构体)、Array(数组)、Slice(切片)和Map(字典)的值。例如,下面的字面量用于表示上面名称为Person的结构体类型的值:
注意:
对复合字面量的每次求值都会导致一个新的值被创建。因此,如上该复合字面量每被求值一次就会创建一个新的Person类型的值。Go语言不允许在一个此类的复合字面变量中,出现重复的键。如下都是错误,无法通过编译,因为键都有重复。
4、类型
一个类型确定了一类值的集合,以及可以在这些值上施加的操作。类型可以由类型名称或者类型字面量指定,分为基本类型和复合类型,基本类型的名称可以代表其自身。
如上声明了一个类型为string(基本类型中的一个)、名称为bookName的变量。
其他基本类型(预定义类型)有bool、byte、rune、int/uint、int8/uint8、int16/uint16、int32/uint32、int64/uint64、float32、float64、complex64和complex128。除了bool和string之外的其他基本类型也叫做数值类型。
复合类型一般由若干(也包括零)个其他已被定义的类型组合而成。复合类型有Channel(通道)、Function(函数)、Interface(接口)、Map(字典)、Struct(结构体)、Slice(切片)、Array(数组)和Pointer(指针)。
Go语言中的类型又可以分为静态类型和动态类型。一个变量的静态类型是指在变量声明中给出的那个类型。绝大多数类型的变量都只有静态类型。唯独接口类型的变量例外,它除了拥有静态类型之外,还拥有动态类型(接口类型在后面会讲到)。
每一个类型都会有一个潜在类型。如果这个类型是一个预定义类型(也就是基本类型),或者是一个由类型字面量构造的复合类型,那么它的潜在类型就是它自身。如string类型的潜在类型就是string类型,上面自定义的Person类型的潜在类型就是Person。如果一个类型并不属于上述情况,那么这个类型的潜在类型就是类型声明中的那个类型的潜在类型。
如下声明一个自定义类型
如上可以把类型MyString看作string类型的一个别名类型,那么MyString类型的潜在类型就是string类型。Go语言基本数据类型中的rune类型可以看作是uint32类型的一个别名类型,其潜在类型就是uint32。
注意:
- 类型MyString和类型string是两个不相同的类型。不能将其中一个类型的值赋给另一个类型的变量。
- 别名类型与它的源类型的不同仅仅体现在名称上,它们的内部结构是一致的;下面的类型转换的表达式都是合法的:MyString(“ABC”) 和string(MyString(“ABC”))。这种类型转换并不会创建新的值。
一个类型的潜在类型具有可传递性,如下:
则类型isString的潜在类型就是string类型。
这里声明一个类型,如下:
**Hinweis:**Der zugrunde liegende Typ vom Typ MyStrings ist kein [3]String. [3] string ist weder ein vordefinierter Typ noch ein aus Typliteralen zusammengesetzter Typ, sondern ein Array-Typ, dessen Elementtyp string ist.
Gemäß der obigen Definition ist ersichtlich, dass der potenzielle Typ von MyStrings der potenzielle Typ string von [3] string ist.
Die Go-Sprache legt fest, dass der potenzielle Typ eines Array-Typs bestimmt, welche Art von Elementen in einer Variablen dieses Typs gespeichert werden können.
5. Operatoren
Operatoren sind Symbole, mit denen bestimmte arithmetische Operationen oder logische Operationen ausgeführt werden. (Ich werde es hier nicht im Detail erklären, es ähnelt den Operatoren in der C-Sprache), aber in der Go-Sprache gibt es keinen ternären Operator. Daher müssen alle Operatoren mit Ausnahme der unären Operatoren binäre Operatoren sein. Die Go-Sprache verfügt über insgesamt 21 Operatoren, darunter arithmetische Operatoren, Vergleichsoperatoren, logische Operatoren, Adressoperatoren und Empfangsoperatoren.
Das obige ist der detaillierte Inhalt vonEs gibt verschiedene Arten von lexikalischen Elementen in der Go-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

GolangissidealforbuildingsCalablesSystemduetoitseffizienz und Konsumverkehr, whilepythonexcelsinquickScriptingandDataanalyseduetoitssimplication und VacevastEcosystem.golangsDesineScouragesCouragescournations, tadelcodedeanDitsGoroutaTinoutgoroutaTinoutgoroutaTinoutsGoroutinesGoroutinesGoroutsGoroutins, t

Golang ist in Gleichzeitigkeit besser als C, während C bei Rohgeschwindigkeit besser als Golang ist. 1) Golang erreicht durch Goroutine und Kanal eine effiziente Parallelität, die zum Umgang mit einer großen Anzahl von gleichzeitigen Aufgaben geeignet ist. 2) C über Compiler -Optimierung und Standardbibliothek bietet es eine hohe Leistung in der Nähe der Hardware, die für Anwendungen geeignet ist, die eine extreme Optimierung erfordern.

Gründe für die Auswahl von Golang umfassen: 1) Leistung mit hoher Genauigkeit, 2) statisches System, 3) Mechanismusmechanismus, 4) Reiche Standardbibliotheken und Ökosysteme, die es zu einer idealen Wahl für die Entwicklung einer effizienten und zuverlässigen Software machen.

Golang ist für schnelle Entwicklung und gleichzeitige Szenarien geeignet, und C ist für Szenarien geeignet, in denen extreme Leistung und Kontrolle auf niedriger Ebene erforderlich sind. 1) Golang verbessert die Leistung durch Müllsammlung und Parallelitätsmechanismen und eignet sich für die Entwicklung von Webdiensten mit hoher Konsequenz. 2) C erreicht die endgültige Leistung durch das manuelle Speicherverwaltung und die Compiler -Optimierung und eignet sich für eingebettete Systementwicklung.

Golang erzielt eine bessere Kompilierungszeit und gleichzeitige Verarbeitung, während C mehr Vorteile bei der Ausführung von Geschwindigkeit und Speicherverwaltung hat. 1. Golang hat eine schnelle Kompilierungsgeschwindigkeit und ist für eine schnelle Entwicklung geeignet. 2.C läuft schnell und eignet sich für leistungskritische Anwendungen. 3. Golang ist einfach und effizient in der gleichzeitigen Verarbeitung, geeignet für die gleichzeitige Programmierung. 4. C Manual Memory Management bietet eine höhere Leistung, erhöht jedoch die Komplexität der Entwicklung.

Die Anwendung von Golang in Webdiensten und Systemprogrammen spiegelt sich hauptsächlich in seiner Einfachheit, Effizienz und Parallelität wider. 1) In Webdiensten unterstützt Golang die Erstellung von Hochleistungs-Webanwendungen und APIs durch leistungsstarke HTTP-Bibliotheken und gleichzeitige Verarbeitungsfunktionen. 2) Bei der Systemprogrammierung verwendet Golang Funktionen in der Nähe von Hardware und Kompatibilität mit der C -Sprache, um für Betriebssystementwicklung und eingebettete Systeme geeignet zu sein.

Golang und C haben ihre eigenen Vor- und Nachteile im Leistungsvergleich: 1. Golang ist für hohe Parallelität und schnelle Entwicklung geeignet, aber die Müllsammlung kann die Leistung beeinflussen. 2.C bietet eine höhere Leistung und Hardwarekontrolle, weist jedoch eine hohe Entwicklungskomplexität auf. Bei der Entscheidung müssen Sie Projektanforderungen und Teamkenntnisse auf umfassende Weise berücksichtigen.

Golang eignet sich für Hochleistungs- und gleichzeitige Programmierszenarien, während Python für die schnelle Entwicklung und Datenverarbeitung geeignet ist. 1. Golang betont Einfachheit und Effizienz und eignet sich für Back-End-Dienste und Microservices. 2. Python ist bekannt für seine prägnante Syntax und reiche Bibliotheken, die für Datenwissenschaft und maschinelles Lernen geeignet sind.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools