Introduction aux modules Go
Les modules sont une nouvelle fonctionnalité expérimentale de Go 1.11, évoluée sur la base de vgo, et est un nouvel outil de gestion de packages.
Les outils de gestion de packages avant Go 1.11 étaient tous basés sur PATH ou sur des répertoires de fournisseurs, ce qui ne pouvait pas très bien résoudre le problème de dépendance aux différentes versions. Modules est une nouvelle méthode de gestion de packages en dehors de GOPATH. L'utilisation de modules le rend complètement indépendant de GOPATH.
Remarque : les modules Go nécessitent Go 1.11 ou supérieur
Guide d'utilisation
Exemple
1 Créez un répertoire en dehors de GOPATH
$ mkdir -p /tmp/scratchpad/hello $ cd /tmp/scratchpad/hello
. 2. Initialisez le module
$ go mod init github.com/you/hello go: creating new go.mod: module github.com/you/hello
3. Modifiez hello.go
package main import ( "fmt" "rsc.io/quote" ) func main() { fmt.Println(quote.Hello()) }
4. Compilez et exécutez
$ go build $ ./hello Hello, world.
Remarque : go build téléchargera automatiquement les packages de dépendances, tandis que les packages golang tels que car .org/x/... doivent contourner le mur. Vous pouvez ajouter la variable d'environnement GOPROXY pour définir le proxy :
export GOPROXY=https://goproxy.io
À ce moment, le fichier go.mod sera automatiquement mis à jour et il contient les dépendances requises par le projet. et le numéro de version correspondant
$ cat go.mod module github.com/you/hello require rsc.io/quote v1.5.2
En plus de go.mod, go maintient également un fichier appelé go.sum, qui contient la valeur de hachage attendue pour une version de module spécifique :
cat go.sum golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c h1:qgOY6WgZOaTkIIMiVjBQcw93ERBE4m30iBm00nkL0i8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= rsc.io/quote v1.5.2 h1:w5fcysjrx7yqtD/aO+QwRjYZOKnaM9Uh2b40tElTs3Y= rsc.io/quote v1.5.2/go.mod h1:LzX7hefJvL54yjefDEDHNONDjII0t9xZLPXsUe+TKr0= rsc.io/sampler v1.3.0 h1:7uVkIFmeBqHfdjD+gZwtXXI+RODJ2Wc4O7MPEh/QiW4= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
go utilise Le fichier go.sum garantit que les futurs téléchargements de ces modules sont les mêmes que le premier téléchargement, garantissant ainsi qu'il n'y aura pas de modifications inattendues dans les modules dont dépend votre projet.
Go.mod et go.sum doivent être archivés dans le contrôle de version.
Flux de travail quotidien
Un flux de travail quotidien typique peut être :
Ajouter des instructions d'importation dans le code .go si nécessaire
Standard les commandes (telles que go build ou go test) ajouteront automatiquement de nouvelles dépendances si nécessaire (mettez à jour go.mod et téléchargez de nouvelles dépendances)
Lorsqu'une version spécifique est requise, vous pouvez utiliser go get pour spécifier une version spécifique Comme go get foo@v1.2.3, go get foo@master, go get foo@e3702bed2, ou éditez directement le fichier go.mod
Commandes communes :
go list -m all Afficher toutes les dépendances directes et indirectes du projet
aller mod spice Supprimer les dépendances inutilisées et ajouter d'autres dépendances requises
aller mod supplier Copier les dépendances dans le répertoire du fournisseur
Pour en savoir plus, allez connaissance de la langue, veuillez faire attention à la colonne tutoriel de langue go sur le site Web PHP chinois.
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!