Maison > développement back-end > Golang > Pourquoi « l'importation locale » échoue-t-elle lors de l'importation d'un package Go non local ?

Pourquoi « l'importation locale » échoue-t-elle lors de l'importation d'un package Go non local ?

DDD
Libérer: 2024-12-15 10:35:10
original
585 Les gens l'ont consulté

Why Does

Import local dans un package non local : comprendre l'erreur

Dans Go, une importation locale est utilisée pour importer un package depuis le même répertoire ou un sous-répertoire du répertoire de travail actuel. Cependant, cette technique ne peut pas être appliquée lors de l'importation d'un package non local, comme en témoigne l'erreur "local import "./greeting" dans un package non local."

Cause de l'erreur

Pour comprendre l'erreur, examinons la structure de fichier fournie :

/Users/clarkj84/Desktop/LearningGo
└── src
    └── jacob.uk.com
        ├── greeting
        │   └── greeting.go
        └── helloworld.go
Copier après la connexion

Le problème survient lorsque vous essayez d'exécuter go install jacob.uk.com à partir du répertoire src. Cette commande tente d'installer le package jacob.uk.com, qui inclut l'importation ./greeting dans helloworld.go. Cependant, Go interprète cela comme une importation locale puisqu'il est exécuté depuis le répertoire src, alors que le package lui-même ne se trouve pas dans src.

Solution

Pour résoudre l'erreur, deux options sont disponibles :

  1. Changer le répertoire de travail : Accédez au répertoire src/jacob.uk.com et exécutez go install sans préciser le colis. Cela permet à Go de résoudre correctement l'importation en tant qu'importation locale.
  2. Utiliser le chemin d'importation absolu : Remplacez l'importation locale par un chemin d'importation absolu :
import "jacob.uk.com/greeting"
Copier après la connexion

Cette approche permet d'importer et d'utiliser le package quel que soit le répertoire de travail.

Avantages d'Absolute Importations

Les importations absolues offrent plusieurs avantages par rapport aux importations locales :

  • Clarté :Elles spécifient explicitement l'emplacement du package importé, ce qui le rend plus facile à comprendre et à maintenir.
  • Portabilité : Les importations absolues permettent de compiler et d'exécuter du code depuis n'importe quel emplacement sans avoir à modifier l'importation chemins.
  • Compatibilité des modules Go : Le développement Go moderne s'appuie sur les modules Go, qui utilisent des chemins d'importation absolus par défaut.

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