Heim > Backend-Entwicklung > Golang > Welche Pakete gibt es in der Go-Sprache?

Welche Pakete gibt es in der Go-Sprache?

青灯夜游
Freigeben: 2021-06-07 16:06:49
Original
3445 Leute haben es durchsucht

Go-Sprachpaket: 1. fmt; 3. bufio; 7. sync; 11. net/http; 12. reflektieren usw.

Welche Pakete gibt es in der Go-Sprache?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, GO 1.11.2, Dell G3-Computer.

Die Wiederverwendung des Quellcodes der Go-Sprache basiert auf Paketen. Die Eintragsfunktion main() der Go-Sprache befindet sich in einem Paket namens main. Wenn das Hauptpaket auf andere Codes verweisen möchte, muss es auch in Form eines Pakets referenziert werden Inhalt des Pakets und wie man andere Pakete importiert.

Go-Sprachpakete haben eine Eins-zu-eins-Entsprechung mit Ordnern. Alle paketbezogenen Vorgänge müssen vom Arbeitsverzeichnis (GOPATH) abhängen.

Die Standardcodebasis der Go-Sprache enthält eine große Anzahl von Paketen, und die meisten davon werden bei der Installation von Go automatisch im System installiert. Wir können diese Pakete im $GOROOT/src/pkg-Verzeichnis anzeigen. Im Folgenden finden Sie eine kurze Einführung in einige Pakete, die häufig in unserer Entwicklung verwendet werden.

1) fmt

fmt-Paket implementiert formatierte Standardeingabe und -ausgabe, die printf und scanf in der C-Sprache ähneln. Unter diesen sind fmt.Printf() und fmt.Println() die von Entwicklern am häufigsten verwendeten Funktionen.

Formatierungsphrasen werden aus der C-Sprache abgeleitet. Einige Phrasen (%-Sequenzen) werden wie folgt verwendet:

  • %v: der Standardformatwert. Beim Drucken einer Struktur fügt das Pluszeichen (%+v) den Feldnamen hinzu;

  • %#v: Wertausdruck im Go-Stil

  • %T: Wertausdruck im Go-Stil mit Typ.

2) io

Dieses Paket stellt die ursprüngliche E/A-Betriebsschnittstelle bereit. Seine Hauptaufgabe besteht darin, primitive E/A wie das Betriebssystempaket zu kapseln und einige andere verwandte Funktionen hinzuzufügen, um abstrakte Funktionen für die Verwendung auf öffentlichen Schnittstellen bereitzustellen.

3) bufio

Das Bufio-Paket bietet eine Datenpufferungsfunktion durch Kapselung des io-Pakets, wodurch der durch das Lesen und Schreiben großer Datenblöcke verursachte Overhead bis zu einem gewissen Grad reduziert werden kann.

In jeder Komponente von bufio wird ein Puffer verwaltet, und Datenlese- und -schreibvorgänge werden direkt über den Pufferbereich ausgeführt. Wenn ein Lese- oder Schreibvorgang initiiert wird, wird zunächst versucht, Daten aus dem Puffer abzurufen. Nur wenn sich keine Daten im Puffer befinden, werden die Daten von der Datenquelle abgerufen und der Puffer aktualisiert.

4) sort

sort-Paket bietet Funktionen zum Sortieren von Slices und benutzerdefinierten Sammlungen.

5) strconv

Das strconv-Paket bietet Funktionen zum Konvertieren von Zeichenfolgen in Basisdatentypen oder von Basisdatentypen in Zeichenfolgen.

6) os

os-Paket bietet eine plattformunabhängige Betriebssystem-Funktionsschnittstelle, die im Unix-Stil gestaltet ist, aber die Fehlerbehandlung erfolgt im Go-Stil. Wenn das Betriebssystem-Paket verwendet wird, wird stattdessen der Fehlertyp zurückgegeben der Fehlernummer.

7) Das sync

sync-Paket implementiert einen Multithread-Sperrmechanismus und andere Mechanismen zum gegenseitigen Ausschluss der Synchronisierung.

8) Das Paket flag

flag bietet die Funktion der Regeldefinition von Befehlszeilenparametern und der Analyse eingehender Parameter. Die meisten Befehlszeilenprogramme erfordern dieses Paket.

9) Kodierung/JSON

JSON wird derzeit häufig als Kommunikationsformat in Netzwerkprogrammen verwendet. Das Paket „encoding/json“ bietet grundlegende Unterstützung für JSON, z. B. die Serialisierung von einem Objekt in eine JSON-Zeichenfolge oder die Deserialisierung eines bestimmten Objekts aus einer JSON-Zeichenfolge.

10) html/template

implementiert hauptsächlich einige Funktionen zum Generieren von HTML-Vorlagen in der Webentwicklung.

11) net/http

net/http-Paket bietet HTTP-bezogene Dienste, hauptsächlich einschließlich http-Anfragen, -Antworten und URL-Analyse sowie grundlegende http-Clients und erweiterte http-Dienste.

Mit dem net/http-Paket können Sie mit nur wenigen Codezeilen einen Crawler oder einen Webserver implementieren, was in herkömmlichen Sprachen unvorstellbar ist.

12) Reflect

Das Reflect-Paket implementiert die Laufzeitreflexion und ermöglicht es Programmen, Objekte über abstrakte Typen zu manipulieren. Es wird normalerweise verwendet, um den Wert der statischen Typschnittstelle {} zu verarbeiten und seine dynamischen Typinformationen über Typeof zu analysieren, wobei normalerweise ein Objekt mit dem Schnittstellentyp Type zurückgegeben wird.

13) os/exec

Das os/exec-Paket stellt entsprechende Implementierungen zum Ausführen benutzerdefinierter Linux-Befehle bereit.

14) Strings

Das Strings-Paket ist hauptsächlich eine Sammlung von Funktionen zur Verarbeitung von Strings, einschließlich Zusammenführen, Suchen, Teilen, Vergleichen, Suffixprüfung, Indizierung, Fallverarbeitung usw.

Die Funktionsschnittstellenfunktionen des Strings-Pakets und des Bytes-Pakets sind grundsätzlich gleich.

15) Bytes

Das Bytes-Paket bietet eine Reihe von Funktionen zum Lesen und Schreiben von Byte-Slices. Es gibt viele Funktionen für die Byte-Slicing-Verarbeitung, die in grundlegende Verarbeitungsfunktionen, Vergleichsfunktionen, Suffix-Prüffunktionen, Indexfunktionen, Teilungsfunktionen, Fallverarbeitungsfunktionen und Sub-Slicing-Verarbeitungsfunktionen unterteilt sind.

16) Das log

log-Paket wird hauptsächlich zur Ausgabe von Protokollen im Programm verwendet.

Das Protokollpaket bietet drei Arten von Protokollausgabeschnittstellen: Drucken, Fatal und Panic.

  • Drucken ist eine normale Ausgabe

  • Fatal ist die Ausführung von os.Exit(1) nach der Ausführung von Print;

  • Panic bedeutet, die Methode panic() nach der Ausführung von Print aufzurufen.

Empfohlenes Lernen: Golang-Tutorial

Das obige ist der detaillierte Inhalt vonWelche Pakete gibt es in der Go-Sprache?. 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