Go (Golang) Standardbibliothek: Vollständiger Überblick

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Go (Golang) Standardbibliothek: Vollständiger Überblick



Die von Google entwickelte Sprache Go (Golang) ist bekannt für ihre Prägnanz, hohe Leistung und integrierte Unterstützung für Nebenläufigkeit. Eine ihrer größten "Superkräfte" ist jedoch die leistungsstarke und durchdachte Standardbibliothek. Im Gegensatz zu vielen anderen Sprachen, bei denen für grundlegende Aufgaben externe Abhängigkeiten benötigt werden, bietet Go alles Nötige "out of the box". In diesem Artikel geben wir einen vollständigen Überblick über die wichtigsten Pakete der Go-Standardbibliothek, die jedem Entwickler nützlich sein werden.



1. Ein-/Ausgabe und Dateiarbeit: Pakete io, os, bufio



Das Paket io ist die Grundlage für alle Ein-/Ausgabeoperationen. Seine Schnittstellen io.Reader und io.Writer gehören zu den wichtigsten Abstraktionen in Go. Praktisch jede Datenquelle (Datei, Netzwerkverbindung, Zeichenkette) kann als Reader dargestellt werden, und jede Senke als Writer.



Das Paket os bietet Funktionen für die Interaktion mit dem Betriebssystem: Öffnen/Erstellen von Dateien, Lesen von Verzeichnissen, Arbeiten mit Umgebungsvariablen.



Das Paket bufio fügt Pufferung hinzu, was das Lesen und Schreiben großer Datenmengen erheblich beschleunigt.



package main

import ( "bufio" "fmt" "os")

func main() { // Datei zum Lesen öffnen file, err := os.Open("example.txt") if err != nil { panic(err) } defer file.Close()

// Gepufferten Scanner erstellen scanner := bufio.NewScanner(file) for scanner.Scan() { fmt.Println(scanner.Text()) }

if err := scanner.Err(); err != nil { fmt.Fprintln(os.Stderr, "Lesefehler:", err) }}


2. Textverarbeitung und Formatierung: Pakete strings, fmt, strconv



Das Paket strings enthält hunderte nützlicher Funktionen für die Arbeit mit Zeichenketten: Suchen, Ersetzen, Teilen, Zusammenfügen, Entfernen von Leerzeichen und vieles mehr. Das Paket strconv ist für die Umwandlung von Zeichenketten in Zahlen (und umgekehrt) sowie das Parsen von booleschen Werten zuständig.



Das Paket fmt ist das "Schweizer Taschenmesser" für formatierte Ausgaben. Es implementiert die Funktionen Printf, Sprintf und Fprintf, die mit allen Typen arbeiten, die das Interface Stringer implementieren.



package main

import ( "fmt" "strconv" "strings")

func main() { // Zeichenkette teilen parts := strings.Split("a,b,c", ",") fmt.Println(parts) // [a b c]

// Zeichenkette in Zahl umwandeln num, _ := strconv.Atoi("42") fmt.Printf("Zahl: %d", num) // Zahl: 42

// Formatierung mit Feldbreite fmt.Printf("|%10s|%5d|", "Hallo", 123)}


3. Netzwerk und HTTP: Pakete net, net/http



Das Paket net bietet grundlegende Primitive für die Arbeit mit TCP/UDP, DNS und IP-Adressen. Der wahre "Star" ist jedoch das Paket net/http. Es ermöglicht die Erstellung vollwertiger HTTP-Server und -Clients ohne eine einzige externe Abhängigkeit.



Dank des integrierten http.ServerMux und des Middleware-Ansatzes können Sie Anfragen einfach routen, JSON verarbeiten, Cookies und Sitzungen verwalten. Die Go-Standardbibliothek wird in der Produktion von Giganten wie Docker, Kubernetes und Dropbox eingesetzt.



package main

import ( "encoding/json" "fmt" "net/http")

type Response struct { Message string `json:"message"`}

func helloHandler(w http.ResponseWriter, r *http.Request) { if r.Method != http.MethodGet { http.Error(w, "Methode nicht unterstützt", http.StatusMethodNotAllowed) return }

resp := Response{Message: "Hallo, Welt!"} w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(resp)}

func main() { http.HandleFunc("/api/hello", hello

Empfehlungen