Maison > développement back-end > Golang > le corps du texte

Explication détaillée de l'utilisation des modules Go

Libérer: 2020-01-04 16:59:56
avant
2376 Les gens l'ont consulté

Explication détaillée de l'utilisation des modules Go

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
Copier après la connexion

. 2. Initialisez le module

$ go mod init github.com/you/hello
go: creating new go.mod: module github.com/you/hello
Copier après la connexion

3. Modifiez hello.go

package main
import (
    "fmt"
    "rsc.io/quote"
)
func main() {
    fmt.Println(quote.Hello())
}
Copier après la connexion

4. Compilez et exécutez

$ go build
$ ./hello
Hello, world.
Copier après la connexion

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
Copier après la connexion

À 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
Copier après la connexion

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=
Copier après la connexion

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!

Étiquettes associées:
go
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal