Welches Paket muss die Go-Sprache haben?

青灯夜游
Freigeben: 2023-01-04 20:30:17
Original
4188 Leute haben es durchsucht

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.

Welches Paket muss die Go-Sprache haben?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.

1. Das Konzept von Paketen und Quelldateien

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.

2. Hauptpaket

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.

3. Benennungskonventionen für Paketverzeichnisse

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

4 . Importieren

Prinzip der Paketeinführung

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:

  • Das Anbieterverzeichnis unter dem aktuellen Paket.
  • Suchen Sie im oberen Verzeichnis, bis Sie das Anbieterverzeichnis unter src finden.
  • Suchen Sie unter GOPATH nach abhängigen Paketen.
  • Suchen Sie im GOROOT-Verzeichnis nach der Syntax von

Paketimport

Beim Schreiben von Go-Code wird der Importbefehl häufig zum Importieren von Paketdateien verwendet. Die Anzeige lautet wie folgt:

  • Regular import

import(
    "fmt"
)
Nach dem Login kopieren

Dann kannst du es im Code wie folgt aufrufen

fmt.Println("hello world")
Nach dem Login kopieren

上面这个fmt是Go语言的标准库,他其实是去GOROOT下去加载该模块。

  • 点操作

import (
   . "fmt"
)
Nach dem Login kopieren

这个点操作的含义就是这个包导入之后在你调用这个包的函数时,你可以省略前缀的包名,也就是前面你调用的fmt.Println(“hello world”)  可以省略的写成Println(“hello world”)。注意:该包内的函数不能与其重名。

  • 别名操作

import( f “fmt” )
Nach dem Login kopieren

别名操作顾名思义可以把包命名成另一个用起来容易记忆的名字,别名操作调用包函数时前缀变成了重命名的前缀,即f.Println(“hello world”),通常为了解决导入多个重名包的问题。

  • _操作

import (
    _ "github.com/go-sql-driver/mysql"
)
Nach dem Login kopieren

_操作其实只是引入该包但不使用,通常只为了执行该包中所有的init()函数,最常见的就是上面的mysql包。

【相关推荐:Go视频教程编程教学

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!

Verwandte Etiketten:
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage