Maison >développement back-end >Golang >Quelles sont les caractéristiques du package Golang
Caractéristiques : 1. Les noms de packages sont généralement en minuscules, utilisez un nom court et significatif ; 2. Les noms de packages ont généralement le même nom que le répertoire dans lequel ils se trouvent, ou ils peuvent être des noms différents. Le nom du package ne peut pas contenir de symboles spéciaux. tel que « - » ; 3. Les packages utilisent généralement des noms de domaine comme noms de répertoire, ce qui garantit l'unicité des noms de package ; 4. Le package nommé main est le package d'entrée de l'application s'il n'y a pas de package principal lors de la compilation du code source ; , le fichier exécutable ne sera pas compilé et généré. Fichier ; 5. Tous les fichiers de code source d'un répertoire ne peuvent appartenir qu'au même package, et les fichiers de code source qui appartiennent également au même package ne peuvent pas être placés dans plusieurs répertoires.
L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.
Le langage Go utilise des packages pour organiser le code source. Un package est une collection de plusieurs codes sources Go et constitue une solution avancée de réutilisation du code. Le langage Go nous fournit de nombreux packages intégrés, tels que fmt, os, io, etc.
Tout fichier de code source doit appartenir à un certain package, et la première ligne de code valide dans le fichier de code source doit être l'instruction package pacakgeName, par laquelle vous déclarez le package dans lequel vous vous trouvez.
Le concept de base des packages
Les packages de langage Go utilisent la forme d'organisation d'une arborescence de répertoires. Généralement, le nom d'un package est le nom du répertoire où se trouve son fichier source, bien que le langage Go le fasse. n'exige pas que le nom du package soit le même que le répertoire dans lequel il se trouve. Le nom du répertoire porte le même nom, mais il est néanmoins recommandé que le nom du package et le répertoire dans lequel il se trouve portent le même nom, afin que le nom du package soit identique à celui du répertoire dans lequel il se trouve. la structure est plus claire.
Les packages peuvent être définis dans des répertoires très profonds. La définition du nom du package n'inclut pas le chemin du répertoire, mais le chemin complet est généralement utilisé lors du référencement du package. Par exemple, définissez un package c sous GOPATH/src/a/b/
. Dans le code source du package c, il vous suffit de le déclarer comme package c
au lieu de package a/b/c
. Cependant, lors de l'importation du package c, vous avez besoin. pour apporter le chemin. Par exemple import "a/b/c"
. GOPATH/src/a/b/
下定义一个包 c。在包 c 的源码中只需声明为package c
,而不是声明为package a/b/c
,但是在导入 c 包时,需要带上路径,例如import "a/b/c"
。
Go语言包特性
包名一般是小写的,使用一个简短且有意义的名称;
包名一般要和所在的目录同名,也可以与其目录不同名(但最好不要这样做),包名中不能包含- 等特殊符号。
包一般使用域名作为目录名称,这样能保证包名的唯一性,比如 GitHub 项目的包一般会放到GOPATH/src/github.com/userName/projectName
Les noms des packages sont généralement en minuscules, utilisez un nom court et significatif
Nom du package Généralement, il doit avoir le même nom que le répertoire dans lequel il se trouve, ou il peut avoir un nom différent de celui du répertoire (mais il est préférable de ne pas le faire. Le nom du package ne peut pas contenir de symboles spéciaux tels que -). Les packages utilisent généralement le nom de domaine comme nom de répertoire, ce qui garantit l'unicité du nom du package. Par exemple, les packages des projets GitHub sont généralement placés dans le GOPATH/src/github.com/userName/. répertoire projectName
.
Le package nommé main est le package d'entrée de l'application Lors de la compilation du fichier de code source qui ne contient pas le package principal, vous n'obtiendrez pas de fichier exécutable.
Tous les fichiers de code source d'un dossier ne peuvent appartenir qu'au même package. Les fichiers de code source qui appartiennent également au même package ne peuvent pas être placés dans plusieurs dossiers.
Idée de conception de package linguistique Go
Le but de toute conception de système de package est de simplifier la conception et la maintenance de grands programmes en plaçant un ensemble de fonctionnalités associées dans une unité indépendante pour faciliter la compréhension et la mise à jour, chacun L'unité est mise à jour tout en conservant une relative indépendance par rapport aux autres unités du programme. Cette fonctionnalité modulaire permet à chaque package d'être partagé et réutilisé par d'autres projets différents, et peut être distribué et réutilisé uniformément au sein du projet ou même à l'échelle mondiale.
Chaque package définit généralement un espace de noms différent pour accéder à chaque identifiant qu'il contient. Chaque espace de noms est associé à un package spécifique. Choisissons des noms courts et concis pour les types, fonctions, etc., afin d'éviter les conflits avec d'autres noms lorsque nous les utilisons. Lorsque l'on modifie un fichier source, il faut recompiler le package correspondant au fichier source et tous les autres packages qui dépendent du package. Même lorsqu'il est construit à partir de zéro, le compilateur du langage Go se compile beaucoup plus rapidement que les autres langages compilés. La vitesse de compilation ultra-rapide du langage Go est principalement due à trois fonctionnalités du langage.
Déclaration expliciteTous les packages importés doivent être explicitement déclarés au début de chaque fichier, afin que le compilateur n'ait pas besoin de lire et d'analyser l'intégralité du fichier source pour déterminer les dépendances du package.
Interdire les dépendances circulaires🎜🎜🎜Interdire les dépendances circulaires des packages Comme il n'y a pas de dépendances circulaires, les dépendances des packages forment un graphe acyclique orienté. Chaque package peut être compilé indépendamment et est susceptible d'être compilé simultanément. 🎜🎜🎜Fichier cible🎜🎜🎜Le fichier cible du package compilé enregistre non seulement les informations d'exportation du package lui-même, le fichier cible enregistre également les dépendances du package. Par conséquent, lors de la compilation d'un package, le compilateur n'a besoin que de lire chaque fichier objet directement importé dans le package, sans parcourir tous les fichiers dépendants. 🎜🎜【Recommandations associées : 🎜Tutoriel vidéo Go🎜, 🎜Enseignement de la programmation🎜】🎜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!