Maison  >  Article  >  développement back-end  >  Explication détaillée de l'utilisation des modules Go

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

尚
avant
2020-01-04 16:59:562358parcourir

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

. 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer