Maison  >  Article  >  développement back-end  >  Comment fonctionne Go import Path dans les packages versionnés

Comment fonctionne Go import Path dans les packages versionnés

WBOY
WBOYavant
2024-02-14 10:21:09349parcourir

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

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

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!

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