Il existe 5 catégories d'éléments lexicaux dans le langage Go : 1. Les identifiants, qui sont des séquences de caractères composées de plusieurs lettres (codées par Unicode), de traits de soulignement et de chiffres 2. Les mots clés, qui sont réservés par le langage de programmation et non autorisés ; pour les programmeurs, les séquences de caractères utilisées comme identifiants peuvent également être appelées mots réservés ; 3. Les opérateurs sont des symboles utilisés pour effectuer des opérations arithmétiques ou logiques spécifiques ; 4. Les séparateurs sont une notation pour les valeurs ;
L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.
Les symboles du langage Go sont également appelés éléments lexicaux, qui comprennent 5 catégories : identifiant, mot-clé, opérateur, délimiteur et littéral, ce sont les unités les plus élémentaires qui composent les codes et les programmes du langage Go.
Normalement, les espaces, les tabulations horizontales, les retours chariot et les sauts de ligne sont ignorés à moins qu'ils ne fassent partie du délimiteur entre plusieurs symboles de langue. Il n'est pas nécessaire d'insérer explicitement des points-virgules dans le langage Go. Si nécessaire, le langage Go insérera automatiquement des points-virgules dans le code pour séparer les instructions.
Le code du langage Go est composé de plusieurs caractères Unicode. Tous les codes sources du langage Go doivent être codés au format d'encodage UTF-8 de la spécification d'encodage Unicode (c'est-à-dire que les fichiers de code source du langage Go écrits doivent être en le format d'encodage UTF-8).
Les symboles linguistiques du langage Go sont également appelés éléments lexicaux, qui comprennent 5 catégories : identifiant(identifiant), mot-clé(mot-clé), opérateur(opérateur), séparateur(délimiteur) et littéral. (littéralement). En général, les espaces, les tabulations horizontales, les retours chariot et les sauts de ligne sont ignorés à moins qu'ils ne soient utilisés comme séparateur entre plusieurs symboles de langue. Il n'est pas nécessaire d'insérer explicitement des points-virgules dans le langage Go. Lorsque cela est nécessaire, le langage Go insérera automatiquement des points-virgules dans le code pour séparer les instructions.
Le code du langage Go est composé de plusieurs caractères Unicode. Tous les codes sources du langage Go doivent être codés au format d'encodage UTF-8 de la spécification d'encodage Unicode (c'est-à-dire que les fichiers de code source du langage Go écrits doivent être en le format d'encodage UTF-8).
1. Identifiant
L'identifiant du langage Go est une séquence de caractères composée de plusieurs lettres (codées par Unicode), de traits de soulignement et de chiffres ;
Remarque :
Dans le code de langue Go, chaque identifiant doit être déclaré avant utilisation.
Une déclaration lie un identifiant non vide à une constante, un type, une variable, une fonction ou un package de code.
Dans le même bloc de code, la déclaration répétée du même identifiant n'est pas autorisée (sauf pour les instructions d'affectation).
Les identifiants dans un fichier de code source et un package de code doivent suivre cette règle.
La portée d'un identifiant déclaré est la même que la portée du bloc de code auquel il appartient directement.
À proprement parler, l'instruction de déclaration du package de code n'est pas une déclaration. Parce que le nom du package de code n’apparaît dans aucune portée. L'objectif de l'instruction de déclaration du package de code est d'identifier si plusieurs fichiers de code source appartiennent au même package de code ou de spécifier le nom de référence du package de code par défaut lors de l'importation d'un package de code.
Les identifiants qualifiés sont utilisés pour accéder aux variables ou aux types dans d'autres packages de code. Par exemple, lorsque j'ai besoin d'accéder à une constante nommée O_RDONLY dans le package de code os, je dois écrire os.O_RDONLY comme ceci.
Des identifiants qualifiés peuvent être utilisés, et deux prérequis doivent être remplis :
Le package de codes auquel il faut accéder doit être importé au préalable
L'identifiant de ce package de codes doit être exportable ;
Un identifiant exportable doit également répondre à deux prérequis :
Le premier caractère du nom de l'identifiant doit être en majuscule (Go langue en fonction de la casse du premier caractère du nom de l'identifiant Pour déterminer les autorisations d'accès de cet identifiant, lorsque le premier caractère du nom de l'identifiant est en majuscule, ses autorisations d'accès sont « publiques », c'est-à-dire que l'identifiant peut être utilisé par n'importe quel code dans n'importe quel package de code en qualifiant l'identifiant Accès lorsque le premier caractère de l'identifiant est ; minuscule, son autorisation d'accès est "privée au niveau du package", c'est-à-dire que seul le code du même package de code que l'identifiant peut y accéder);
-
L'identifiant doit être le nom d'une variable ou d'un type déclaré dans un code package, ou le nom d’un champ ou d’une méthode appartenant à un type de structure.
Identifiants prédéfinis pour la langue Go :
- Noms de tous les types de données de base.
- Erreur de type d'interface
- Constante vrai, faux et iota
- Les noms de toutes les fonctions intégrées, à savoir append, majuscule, close, complex, copy, delete, imag, len, make, new, panic, print, println , réel et récupérer.
Il existe un identifiant vide dans le langage Go, qui est représenté par un trait de soulignement et est généralement utilisé dans une déclaration qui ne nécessite pas l'introduction d'une nouvelle liaison. Par exemple, lorsque nous souhaitons uniquement exécuter la fonction d'initialisation dans un certain package de code sans utiliser d'entités de programme dans ce package de code, nous pouvons écrire l'instruction d'importation suivante :
where, " runtime/cgo " représente l'identifiant d'un package de code de bibliothèque standard.
2. Mots-clés
Les mots-clés (également appelés mots réservés) sont des séquences de caractères réservées par les langages de programmation et ne sont pas utilisées par les programmeurs comme identifiants.
Catégorie | Mots clés |
---|---|
Déclaration de programme | import, package |
Déclaration et définition d'entité de programme | chan, const, func, interface, map, struct, type, |
Flux de contrôle du programme | 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类型。
这里声明一个类型,如下:
**Remarque :**Le type sous-jacent du type MyStrings n'est pas [3]string. [3] string n'est ni un type prédéfini ni un type composite construit à partir de littéraux de type, mais un type tableau dont le type d'élément est une chaîne.
Selon la définition ci-dessus, le type potentiel de type MyStrings est la chaîne de type potentielle de [3] chaîne.
Le langage Go stipule que le type potentiel d'un type tableau détermine quel type d'éléments peut être stocké dans une variable de ce type.
5. Opérateurs
Les opérateurs sont des symboles utilisés pour effectuer des opérations arithmétiques ou logiques spécifiques. (Je ne l'expliquerai pas en détail ici, c'est similaire aux opérateurs en langage C), mais il n'y a pas d'opérateur ternaire en langage Go, donc à l'exception des opérateurs unaires, tous les opérateurs doivent être des opérateurs binaires. Le langage Go compte un total de 21 opérateurs, dont des opérateurs arithmétiques, des opérateurs de comparaison, des opérateurs logiques, des opérateurs d'adresse et des opérateurs de réception.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Golang excelle dans les applications pratiques et est connu pour sa simplicité, son efficacité et sa concurrence. 1) La programmation simultanée est implémentée via des goroutines et des canaux, 2) le code flexible est écrit à l'aide d'interfaces et de polymorphismes, 3) Simplifier la programmation réseau avec des packages Net / HTTP, 4) Construire des robots concurrents efficaces, 5) Déboggage et optimisation par le biais d'outils et de meilleures pratiques.

Les caractéristiques principales de GO incluent la collection de déchets, la liaison statique et le support de concurrence. 1. Le modèle de concurrence du langage GO réalise une programmation concurrente efficace via le goroutine et le canal. 2. Les interfaces et les polymorphismes sont implémentés via des méthodes d'interface, de sorte que différents types peuvent être traités de manière unifiée. 3. L'utilisation de base démontre l'efficacité de la définition et de l'appel des fonctions. 4. Dans une utilisation avancée, les tranches offrent des fonctions puissantes de redimensionnement dynamique. 5. Des erreurs courantes telles que les conditions de course peuvent être détectées et résolues par l'imagerie. 6. Optimisation des performances Réutiliser les objets via Sync.Pool pour réduire la pression de collecte des ordures.

GO Language fonctionne bien dans la construction de systèmes efficaces et évolutifs. Ses avantages incluent: 1. Haute performance: compilé en code machine, vitesse de course rapide; 2. Programmation simultanée: simplifier le multitâche via les goroutines et les canaux; 3. Simplicité: syntaxe concise, réduction des coûts d'apprentissage et de maintenance; 4. Plate-forme multipliée: prend en charge la compilation multiplateforme, déploiement facile.

Confus quant au tri des résultats de la requête SQL. Dans le processus d'apprentissage de SQL, vous rencontrez souvent des problèmes déroutants. Récemment, l'auteur lit "Mick-SQL Basics" ...

La relation entre la convergence des piles technologiques et la sélection de la technologie dans le développement de logiciels, la sélection et la gestion des piles technologiques sont un problème très critique. Récemment, certains lecteurs ont proposé ...

Golang ...

Comment comparer et gérer trois structures en langue go. Dans la programmation GO, il est parfois nécessaire de comparer les différences entre deux structures et d'appliquer ces différences au ...

Comment afficher les packages installés à l'échelle mondiale dans Go? En train de se développer avec le langage Go, GO utilise souvent ...


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

mPDF
mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.