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 Auch in der Bibliothek
Observation Swift: Komplettleitfaden mit Beispielen
Arbeiten mit XML in PHP: Vollständiger Leitfaden zum Parsen und Erstellen von XML-Dokumenten