Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verwende ich einen in einem Paket definierten Typ in einem anderen Paket in Go?

Wie verwende ich einen in einem Paket definierten Typ in einem anderen Paket in Go?

DDD
DDDOriginal
2024-11-22 05:09:21959Durchsuche

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

Pakete und Typen in Go importieren

In Go kapseln Pakete zugehörigen Code und Daten. Um Funktionen aus einem Paket in einem anderen wiederzuverwenden, müssen Sie das erste Paket in das letztere importieren.

Problem: Importieren eines Typs von einem Paket in ein anderes

Bedenken Sie die folgende Projektstruktur:

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

Die Datei config.go enthält eine Typdefinition für Config:

package config

type Config struct {
    // ...
}

Sie möchten den Config-Typ im verwenden Datei otherFile.go:

package otherPackage

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

Importfehler: „importiert und nicht verwendet“ und „undefiniert: Konfiguration“

Beim Versuch, das Konfigurationspaket zu importieren, treten die folgenden Fehler auf:

  • "importiert und nicht verwendet"
  • "undefiniert: Config"

Der erste Fehler weist darauf hin, dass Sie das Konfigurationspaket importiert haben, es aber nirgendwo in Ihrem Code verwenden. Der zweite Fehler weist darauf hin, dass der Config-Typ im aktuellen Bereich nicht erkannt wird.

Lösung: Verwendung qualifizierter Namen für importierte Typen

Um dieses Problem zu beheben, müssen Sie das Paket vollständig importieren Pfad anstelle eines relativen Pfads. Darüber hinaus müssen Sie den Config-Typ mit seinem Paketnamen qualifizieren, wenn Sie in Ihrem Code darauf verweisen.

package otherPackage

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

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

Indem Sie das Paket mit seinem vollständigen Pfad importieren, geben Sie explizit an, wo sich der Config-Typ befindet. Durch die Qualifizierung des Typs mit seinem Paketnamen wird sichergestellt, dass der Compiler weiß, auf welchen Konfigurationstyp Sie sich beziehen.

Hinweis: Wenn der Paketname, den Sie importieren, mit einer Variablen übereinstimmt oder eingibt In Ihrem aktuellen Bereich müssen Sie die Variable oder den Typ umbenennen, um Konflikte zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie verwende ich einen in einem Paket definierten Typ in einem anderen Paket in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn