Die Go-Sprache muss ein Hauptpaket haben. Die Go-Sprache ist eine kompilierte statische Sprache. Bevor ein Go-Sprachprogramm ausgeführt wird, muss es in eine ausführbare Binärdatei kompiliert werden. Um ein ausführbares Go-Sprachprogramm zu generieren, muss ein Paket mit dem Namen „main“ vorhanden sein und nur eine Hauptfunktion.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.
Go-Programme werden durch die Verknüpfung von Paketen zusammengestellt. Ein Paket besteht aus Quelldateien, die die zum Paket gehörenden Konstanten, Typen, Variablen und Funktionen definieren (auf sie kann von allen Dateien im selben Paket zugegriffen werden und sie können durch Export auch von anderen Paketen verwendet werden). Der Code jedes Pakets kann als kleine Wiederverwendungseinheit verwendet und von anderen Projekten referenziert werden.
Jede Quelldatei verfügt über eine Paketanweisung, die definiert, zu welchem Paket sie gehört, gefolgt von einer möglicherweise leeren Importsammlung, die angibt, welche Pakete verwendet werden müssen, und dann gefolgt von einer möglicherweise leeren Sammlung von Funktionen, Typen, Variablen und Konstanten . .
Wir können sehen, dass die zugehörigen Dateipakete mit den Namen code und errno beide errno sind. Dies zeigt, dass Go eine Klasse nicht als Wiederverwendungseinheit wie Java verwendet, sondern das Paket als kleine Wiederverwendungseinheit.
Zusammenfassung: Die kleinste Einheit in Go ist das Paket, und unter dem Paket können sich mehrere Quelldateien befinden. Die Quelldatei entspricht der Klassenklasse. Jede Quelldatei deklariert über die Paketanweisung, zu welchem Paket die Datei gehört.
In der Go-Sprache hat das Paket mit dem Namen main eine besondere Bedeutung. Der Go-Sprachcompiler versucht, ein Paket mit diesem Namen in eine binäre ausführbare Datei zu kompilieren. Alle in Go kompilierten ausführbaren Programme müssen ein Paket mit dem Namen main haben.
Einfach ausgedrückt: Um ein ausführbares Programm in der Go-Sprache zu generieren, muss ein Paket mit dem Namen main vorhanden sein, und es darf nur eine Hauptfunktion unter diesem Paket vorhanden sein
Wenn der Compiler feststellt, dass der Name eines bestimmten Pakets main ist Das heißt, es wird definitiv festgestellt, dass es sich um eine Funktion mit dem Namen main() handelt, andernfalls wird die ausführbare Datei nicht erstellt. Die Funktion main() ist der Einstiegspunkt des Programms. Ohne diese Funktion kann das Programm also nicht mit der Ausführung beginnen. Beim Kompilieren des Programms wird der Verzeichnisname des Verzeichnisses, in dem sich der Code befindet, der das Hauptpaket deklariert, als Dateiname der ausführbaren Binärdatei verwendet.
Es wird gesagt, dass keine Regel eine Regel erstellen kann. Bevor wir die Go-Sprache entwickeln, müssen wir einige der Merkmale und Spezifikationen der Go-Sprache verstehen, um besser entwickeln zu können. Hochwertiger, universeller Code, wenn Sie sonst ein Programm entwickeln, das nur Sie verstehen können, ist es nur Ihre eigene Unterhaltung. Dieser Abschnitt enthält ein Beispiel für eine Namenskonvention, die auf einigen klassischen Codes und Unternehmensentwicklungsgewohnheiten basiert. Das Beispiel lautet wie folgt:
Im Folgenden werden die Entwicklungsspezifikationen erläutert, die ich anhand dieses Beispieldiagramms verstehe:
conf: Dieses Verzeichnis Speichert hauptsächlich Konfigurationsdateien
Handler: Speichert hauptsächlich die Eingabedateien einiger Programme, entspricht der Collter-Schicht in Java
Modell: Speichert hauptsächlich Dateien im Zusammenhang mit Datenbankoperationen
pkg: Speichert hauptsächlich einige gängige Tools Klasse und andere Codes
router: speichert hauptsächlich den Code des Routing-Dienstes
service: speichert hauptsächlich den Geschäftscode
vendor: speichert hauptsächlich die Abhängigkeitspakete des Projekts selbst
conf. yaml: Die Konfigurationsdatei des Projekts, die im Verzeichnis oder im Ordner conf abgelegt werden kann
main.go: Der Einstiegspunkt des Programms wird im Allgemeinen im Stammverzeichnis abgelegt
Programm Die Initialisierung und Ausführung beginnt mit dem Hauptpaket. Wenn das Hauptpaket auch andere Pakete importiert, werden diese beim Kompilieren nacheinander importiert. Ein von mehreren Orten importiertes Paket wird nur einmal importiert. Wenn ein Paket importiert wird und das Paket auch andere Pakete importiert, werden zuerst die anderen Pakete importiert. Anschließend werden die Konstanten und Variablen auf Paketebene in diesen Paketen initialisiert und anschließend die Init-Funktion (falls vorhanden) ausgeführt . ), und so weiter. Nachdem alle importierten Pakete geladen wurden, werden die Konstanten und Variablen auf Paketebene im Hauptpaket initialisiert, dann wird die Init-Funktion im Hauptpaket ausgeführt (falls vorhanden) und schließlich wird die Hauptfunktion ausgeführt.
Wenn ein Paket importiert wird, werden Abhängigkeiten nach Priorität von hoch nach niedrig durchsucht, ungefähr:
Beim Schreiben von Go-Code wird der Importbefehl häufig zum Importieren von Paketdateien verwendet. Die Anzeige lautet wie folgt:
Regular import
import( "fmt" )
Dann kannst du es im Code wie folgt aufrufen
fmt.Println("hello world")
上面这个fmt是Go语言的标准库,他其实是去GOROOT下去加载该模块。
点操作
import ( . "fmt" )
这个点操作的含义就是这个包导入之后在你调用这个包的函数时,你可以省略前缀的包名,也就是前面你调用的fmt.Println(“hello world”) 可以省略的写成Println(“hello world”)。注意:该包内的函数不能与其重名。
别名操作
import( f “fmt” )
别名操作顾名思义可以把包命名成另一个用起来容易记忆的名字,别名操作调用包函数时前缀变成了重命名的前缀,即f.Println(“hello world”),通常为了解决导入多个重名包的问题。
_操作
import ( _ "github.com/go-sql-driver/mysql" )
_操作其实只是引入该包但不使用,通常只为了执行该包中所有的init()函数,最常见的就是上面的mysql包。
Das obige ist der detaillierte Inhalt vonWelches Paket muss die Go-Sprache haben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!