Maison > développement back-end > Golang > 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
Libérer: 2024-11-27 20:27:15
original
599 Les gens l'ont consulté

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

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

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

Structure du fichier

En supposant la structure de fichier suivante :

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

└── module2
    ├── go.mod
    └── module2.go
Copier après la connexion

go.mod Fichiers

Module1 :

module github.com/username/module1

require (
    github.com/username/module2 v0.0.1
)
Copier après la connexion

Module2 :

module github.com/username/module2

go 1.13
Copier après la connexion

main.go (Module1)

package main

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

func main() {
    fmt.Println(module2.Name())
}
Copier après la connexion

module2.go (Module2)

package module2

import "fmt"

func Name() string {
    return "Module 2"
}
Copier après la connexion

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal