Maison  >  Article  >  développement back-end  >  Comment utiliser un type défini dans un package dans un autre package en Go ?

Comment utiliser un type défini dans un package dans un autre package en Go ?

DDD
DDDoriginal
2024-11-22 05:09:21959parcourir

How to Use a Type Defined in One Package in Another Package in Go?

Importation de packages et de types dans Go

Dans Go, les packages encapsulent le code et les données associés. Pour réutiliser les fonctionnalités d'un package dans un autre, vous devez importer le premier package dans ce dernier.

Problème : Importer un type d'un package à un autre

Considérez la structure de projet suivante :

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

Le fichier config.go contient une définition de type pour Config :

package config

type Config struct {
    // ...
}

Vous souhaitez utiliser le type Config dans le fichier otherFile.go :

package otherPackage

func SomeFunction(target float64, entries [2]float64, config config.Config) {
    // ...
}

Erreur d'importation : "importé et non utilisé" et "non défini : Config"

Lors de la tentative d'importation du package de configuration, vous rencontrez les erreurs suivantes :

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

La première erreur indique que vous avez importé le package de configuration mais que vous ne l'utilisez nulle part dans votre code. La deuxième erreur indique que le type de configuration n'est pas reconnu dans la portée actuelle.

Solution : Utilisation de noms qualifiés pour les types importés

Pour résoudre ce problème, vous devez importer le package en utilisant son contenu complet. chemin au lieu d’un chemin relatif. De plus, vous devez qualifier le type Config avec son nom de package lorsque vous le référencez dans votre code.

package otherPackage

import (
    "fmt"
    "math"
    "your-project/src/config"
)

func SomeFunction(target float64, entries [2]float64, config config.Config) {
    // ...
}

En important le package avec son chemin complet, vous indiquez explicitement où trouver le type Config. Qualifier le type avec son nom de package garantit que le compilateur sait à quel type de configuration vous faites référence.

Remarque : Si le nom du package que vous importez est le même qu'une variable ou saisissez votre portée actuelle, vous devrez renommer la variable ou le type pour éviter les conflits.

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