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

Comment fonctionne Go import Path dans les packages versionnés

WBOY
Libérer: 2024-02-14 10:21:09
avant
397 Les gens l'ont consulté

Go import Path 在版本化包中如何工作

Utiliser les chemins d'importation de langue Go dans des packages versionnés est une compétence importante. Avec le chemin d'importation correct, nous pouvons facilement introduire et utiliser des packages créés par d'autres développeurs. Cependant, pour les débutants, comprendre comment fonctionnent les chemins d’importation dans les packages versionnés peut être un peu déroutant. Dans cet article, l'éditeur PHP Baicao expliquera en détail le fonctionnement du chemin d'importation et fournira quelques conseils pratiques pour vous aider à mieux comprendre et utiliser le chemin d'importation. Que vous soyez débutant ou développeur expérimenté, cet article vous fournira des informations et des conseils précieux. commençons!

Contenu de la question

Je suis un peu curieux de savoir comment Golang analyse les importations nommées.

Dans cet exemple, j'ai echo comme dossier de candidature.

package main

import (
    "net/http"

    "github.com/labstack/echo/v4"
)

func main() {
    e := echo.new()
    e.get("/", func(c echo.context) error {
        return c.string(http.statusok, "hello, world!")
    })
    e.logger.fatal(e.start(":1323"))
}
Copier après la connexion

Comme le montre la ligne import, echo est en fait référencé par sa version "v4", mais go peut le résoudre en "echo". J'ai consulté le dépôt d'écho mais je n'ai rien trouvé de clair sur la façon dont go résout ce problème.

ps : Je l'ai utilisé avec des alias dans le passé, comme :

...
import (
    echo "github.com/labstack/echo/v4"
)
...
Copier après la connexion

Mais cela semble être une solution de contournement.

Solution

La première ligne du fichier Go utilise la directive package pour déclarer le nom du package. C'est le nom auquel package 指令声明包名称。这是 import se résout lorsqu'il est importé sans alias. Les importations d'alias peuvent être utilisées lorsque vous devez lever l'ambiguïté entre plusieurs packages portant le même nom de package mais des chemins d'importation différents.

go.mod 文件保存了 Go 包的导入路径(对于 echo 来说是 github.com/labstack/echo/v4). Comme l'a dit JimB, le nom du package n'a pas besoin de correspondre au chemin d'importation, c'est juste une convention de le faire.

rsc.io/quote (code source sur https://github.com/rsc/quote) Explication de la gestion des versions et de l'importation du package Go. Vous pouvez également consulter le article de blog de Russ Cox expliquant la gestion des versions des packages dans 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!

Étiquettes associées:
source:stackoverflow.com
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