Heim >Backend-Entwicklung >Golang >Golang – Der Paketname besteht aus einem doppelten Unterstrich
Bei der Golang-Programmierung ist der Paketname ein sehr wichtiges Konzept. Die Spezifikation für Paketnamen besteht darin, Kleinbuchstaben zu verwenden und keine Sonderzeichen und Leerzeichen zu enthalten. Es gibt jedoch einen Sonderfall, bei dem der Paketname doppelt unterstrichen ist. Dies liegt daran, dass in Golang Pakete mit doppelten Unterstrichen in ihren Paketnamen eine besondere Bedeutung haben. Es stellt ein leeres Paket dar, das zum Deklarieren von Variablen oder zum Durchführen einiger spezieller Initialisierungsvorgänge verwendet wird. Diese Funktion ist in einigen spezifischen Szenarien sehr nützlich, insbesondere bei der Entwicklung einiger Tools oder Frameworks. Wenn Sie also in Golang einen Paketnamen mit doppelten Unterstrichen sehen, lassen Sie sich nicht verwirren, es handelt sich um einen legalen Paketnamen mit besonderer Bedeutung.
Im von meinem Protobuf generierten Go-Code lautet das Paket:
package __Was bedeutet
双下划线
? Ist es dasselbe wie der Ordnername?
Gibt es dazu eine Dokumentation? Ich habe gesucht, konnte sie aber nicht finden. Und der Code lässt sich fehlerfrei kompilieren.
Ja, das bedeutet dasselbe Verzeichnis. Schauen wir uns den folgenden Code an.
. ├── go.mod ├── greet │ └── greet.go └── main.goInhalt in
greet.go
package __ import "fmt" func hello(name string) { fmt.printf("hello %s\n", name) }Inhalt in
main.go
package main import greet "playground/greet" func main() { greet.hello("eric") }
$ pwd /Users/thedatageek/Codes/go-playground
Leider kann ich auch keine Go-Dokumentation finden.
Das scheint jedoch eine gute Sache zu sein. Sie müssen dem Paket nicht unbedingt einen Namen geben. Sie benennen einfach das Verzeichnis und die Paketnamen sind automatisch identisch.
Hinweis: Das ist definitiv nicht grpc
或 protobuf
. Wenn Sie jedoch als Benutzerdefiniert den ursprünglichen Stub aus der Originaldatei generiert und einige zusätzliche Dienstprogrammdateien hinzugefügt haben, können Sie diese in einem Verzeichnis ablegen und sie dann direkt über den Verzeichnisnamen importieren. Zum Beispiel das folgende Github-Repository
https://www.php.cn/link/570badcfe14697bf2a244e2e25b93e59 https://www.php.cn/link/11b01bd09f8d22fecc14d3418f83caab https://www.php.cn/link/8cee1a0fe765af425dc6f0b6169a6c07 https://www.php.cn/link/8230bea7d54bcdf99cdfe85cb07313d5 https://www.php.cn/link/05f03bcccda955d1689b36046a6db899 https://www.php.cn/link/3a93a609b97ec0ab0ff5539eb79ef33a
Das obige ist der detaillierte Inhalt vonGolang – Der Paketname besteht aus einem doppelten Unterstrich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!