Maison >développement back-end >Golang >Pourquoi ne puis-je pas importer un type spécifique dans Go ?

Pourquoi ne puis-je pas importer un type spécifique dans Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-14 22:24:02283parcourir

Why Can't I Import a Specific Type in Go?

Importer le package et le type

Problème :

Un utilisateur rencontre des problèmes lors de l'importation d'un type à partir d'un package distinct dans son Allez dans la structure du projet. Les instructions d'importation entraînent des avertissements concernant les importations inutilisées ou les types non définis, même si le type est utilisé dans les déclarations de fonction.

Structure du projet :

src
|-- config
   |-- config.go
|-- otherPackage
   |-- otherFile.go
|-- main.go

Tentative d'importation :

import (
    "fmt"
    "math"
    "../config"
)

Erreurs :

  • importé et non utilisé
  • non défini : Config

Cause :

Le problème survient en raison d'une syntaxe d'importation incorrecte. Dans Go, il n'est pas possible d'importer des types ou des fonctions spécifiques à partir d'un package. Seul l'intégralité du package peut être importé.

Solution :

Pour résoudre le problème, l'instruction d'importation doit être modifiée comme suit :

import (
    "fmt"
    "math"
    "full/import/path/of/config"
)

Référence du package et du type :

L'ensemble du package étant importé, le type doit être référencé à l'aide de son nom complet :

func function(... config.Config) {}

Variable Observation :

Si une variable portant le même nom que le package importé est déclarée dans la portée actuelle, elle observera le package. Pour éviter cela, renommez la variable en quelque chose d'autre, par exemple :

func function(... config.Config) {}
var cfg config.Config

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