Heim > Backend-Entwicklung > Golang > Kann ein Go-Projekt sowohl eine Bibliothek als auch eine CLI im selben Verzeichnis haben?

Kann ein Go-Projekt sowohl eine Bibliothek als auch eine CLI im selben Verzeichnis haben?

Barbara Streisand
Freigeben: 2024-12-06 16:28:13
Original
968 Leute haben es durchsucht

Can a Go Project Have Both a Library and a CLI in the Same Directory?

Können sich zwei Pakete im selben Verzeichnis befinden?

Bei der Entwicklung von Projekten, die sowohl eine Bibliothek als auch eine Befehlszeilenschnittstelle (CLI) erfordern, ist dies der Fall Es kommt häufig zu Konflikten zwischen zwei Paketen, die im selben Verzeichnis vorhanden sind. Da der Go-Compiler ein Paket namens „main“ mit einem „func main“ als Einstiegspunkt benötigt, wird davon ausgegangen, dass es unmöglich ist, separate Pakete sowohl für die Bibliothek als auch für die CLI zu haben.

Lösung : Verschachtelte Paketstruktur

Es gibt jedoch eine Problemumgehung für dieses Problem, indem beide Pakete in einen neuen Ordner im selben Verzeichnis wie „main.go“ verschoben werden. Datei. Der Schlüssel besteht darin, sicherzustellen, dass das neue Paket aus dem richtigen Pfad innerhalb von „$GOPATH“ importiert wird.

Beispiel:

Bedenken Sie die aktualisierte Verzeichnisstruktur:

whatever.io/
    myproject/
        a/                # New folder
            a.go
        main.go
Nach dem Login kopieren

In „main.go“ importieren Sie das neue Paket aus seinem verschachtelten Pfad:

package main

import (
    "../myproject/a"
)

func main() {
    a.Hello()
}
Nach dem Login kopieren

In „a.go“, Funktionen für die Bibliothek definieren:

package a

import (
    "fmt"
)

func Hello() {
    fmt.Println("hello from a")
}
Nach dem Login kopieren

Erstellen und Ausführen:

Jetzt können Sie das Projekt erfolgreich erstellen und ausführen:

go run main.go
# Prints "hello from a"

go build
# Creates the executable without errors
Nach dem Login kopieren

Diese Lösung ermöglicht es Ihnen, sowohl eine Bibliothek (Paket „a“) ​​als auch eine CLI (Paket „main“) im selben Verzeichnis zu haben, wodurch der Konflikt gelöst wird, der durch zwei entsteht Pakete mit demselben Namen im selben Verzeichnis.

Das obige ist der detaillierte Inhalt vonKann ein Go-Projekt sowohl eine Bibliothek als auch eine CLI im selben Verzeichnis haben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage