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!

ToensineItFunctionsAreeEffective et montable: 1) Minizes au niveau des effets par rapport à la réduction destinés à Modifier GlobalState, 2)

GOISIDEALFORBEGINNERNERS et combinant pour pourcloudandNetWorkServicesDuetOtssimplicity, Efficiency, andCurrencyFeatures.1) InstallgofromTheofficialwebsiteandverifywith'goversion'..2)

Les développeurs doivent suivre les meilleures pratiques suivantes: 1. Gérer soigneusement les Goroutines pour empêcher la fuite des ressources; 2. Utilisez des canaux pour la synchronisation, mais évitez la surutilisation; 3. Gérer explicitement les erreurs dans les programmes simultanés; 4. Comprendre GomaxProcs pour optimiser les performances. Ces pratiques sont cruciales pour un développement logiciel efficace et robuste, car ils garantissent une gestion efficace des ressources, la mise en œuvre appropriée de la synchronisation, la gestion des erreurs appropriée et l'optimisation des performances, améliorant ainsi l'efficacité des logiciels et la maintenabilité.

GoExcelsInproductiondUetoitSitPerformanceAndImplicity, Burequirerescarefulmanagement of Sccalability, ErrorHandling, Andresources.1) dockingusgoforefficientContainermanagement ThroughHroughgoroutines.2)

Nous devons personnaliser le type d'erreur car l'interface d'erreur standard fournit des informations limitées, et les types personnalisés peuvent ajouter plus de contexte et d'informations structurées. 1) Les types d'erreur personnalisés peuvent contenir des codes d'erreur, des emplacements, des données de contexte, etc., 2) Améliorer l'efficacité du débogage et l'expérience utilisateur, 3) mais l'attention doit être accordée à ses coûts de complexité et de maintenance.

GOISIDEALFORBUILDingsCalableSystemsDuetOtssimplicity, Efficiency et Build-InconcurrencySupport.1) Go'scleanSyntaxandMinImaliticDesignenHance Produductivity andreduceerrors.2)

InitFunctionSingorunAutomAtical BeforEmain () etaareusefulforsttingUnvironments etInitializingVaribles.Usethemforsimpletasks, évitez les effets et les plus compatibles avec un test de règlement.

GOINITIALISESPACKAGSEURSETHEORDETHEYARE IMPORTÉ, ENTERNEXECUTES INSIMITÉSEMENTSWithInapackageIntheirdFinitionOrder, et les nom


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

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

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.

Dreamweaver CS6
Outils de développement Web visuel

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.
