Maison  >  Article  >  développement back-end  >  Comment référencer des modules Go depuis l'extérieur de GOPATH ?

Comment référencer des modules Go depuis l'extérieur de GOPATH ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-27 20:27:15571parcourir

How Do I Reference Go Modules from Outside the GOPATH?

Référencement des modules à partir de répertoires non-GOPATH

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 module

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.

Instructions d'importation

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"
)

Structure du fichier

En supposant la structure de fichier suivante :

\root
└── module1
    ├── go.mod
    └── main.go

└── module2
    ├── go.mod
    └── module2.go

go.mod Fichiers

Module1 :

module github.com/username/module1

require (
    github.com/username/module2 v0.0.1
)

Module2 :

module github.com/username/module2

go 1.13

main.go (Module1)

package main

import (
    "fmt"
    "github.com/username/module2"
)

func main() {
    fmt.Println(module2.Name())
}

module2.go (Module2)

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!

Déclaration:
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