L'introduction des modules Go dans Go 1.11 a introduit des changements dans le référencement des modules et des packages à partir de répertoires non-GOPATH.
À l'ancienne
Traditionnellement, allez-y les modules devaient résider dans le GOPATH. Les modules et packages de ce répertoire peuvent être importés en utilisant la syntaxe suivante :
import ( "github.com/username/modulename/subpackage" )
New Way
Avec les modules Go, cette approche a changé. Les packages peuvent désormais résider en dehors de GOPATH. Pour référencer un package depuis un autre répertoire :
Initialiser un nouveau module à l'aide de la commande go mod init :
go mod init github.com/username/modulename
Cela crée go.mod et go .sum dans le répertoire actuel.
Utilisez les instructions d'importation pour référencer des packages provenant d'autres répertoires. Par exemple, si Module2 se trouve à /root/module2 et contient un package nommé module2, l'instruction d'importation dans Module1 sera :
import ( "github.com/username/module2" )
En supposant la structure de fichier suivante :
\root └── module1 ├── go.mod └── main.go └── module2 ├── go.mod └── module2.go
Module1 :
module github.com/username/module1 require ( github.com/username/module2 v0.0.1 )
Module2 :
module github.com/username/module2 go 1.13
package main import ( "fmt" "github.com/username/module2" ) func main() { fmt.Println(module2.Name()) }
package module2 import "fmt" func Name() string { return "Module 2" }
En suivant ces étapes, vous pouvez référencer des modules à partir de répertoires non-GOPATH, permettant la réutilisation du code et la modularité dans les projets Go.
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!