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



Go (oder Golang) ist eine moderne, kompilierte Programmiersprache von Google, die für Einfachheit, Leistung und Zuverlässigkeit entwickelt wurde. Einer der Hauptgründe für ihre Beliebtheit ist die leistungsstarke und gut dokumentierte Standardbibliothek. Im Gegensatz zu vielen anderen Sprachen wird Go mit einem umfangreichen Satz an Paketen „aus einer Hand“ ausgeliefert, die praktisch alle grundlegenden Aufgaben abdecken: von der Textverarbeitung bis zum Aufbau hochbelastbarer Webdienste. In diesem Überblick betrachten wir die wichtigsten Pakete der Go-Standardbibliothek mit Codebeispielen im Detail.



Paket fmt: formatierte Ein-/Ausgabe

Dies ist das erste Paket, das jeder Go-Entwickler kennenlernt. Es bietet Funktionen für formatierte Ausgabe auf der Konsole und zum Lesen von Daten.

package main

import "fmt"

func main() { name := "Go" version := 1.22 // Formatierte Ausgabe fmt.Printf("Sprache: %s, Version: %.1f", name, version)

// Zeichenkette ohne Ausgabe zusammenstellen message := fmt.Sprintf("Hallo, %s!", name) fmt.Println(message)}


Paket strings und strconv: Arbeit mit Zeichenketten

Das Paket strings enthält Funktionen zum Suchen, Ersetzen, Teilen und Zusammenfügen von Zeichenketten. strconv ist für die Umwandlung von Zeichenketten in Zahlen und umgekehrt zuständig.

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

func main() { s := "Hallo, Welt!" // Suche nach Teilzeichenkette if strings.Contains(s, "Welt") { fmt.Println("Gefunden") } // Teilen der Zeichenkette parts := strings.Split(s, ", ") fmt.Println(parts[0]) // Hallo

// Umwandlung einer Zeichenkette in eine Zahl num, _ := strconv.Atoi("42") fmt.Println(num + 8) // 50}


Paket net/http: Erstellung von HTTP-Servern und -Clients

Eines der leistungsstärksten Pakete. Es ermöglicht, mit wenigen Codezeilen einen vollwertigen HTTP-Server zu starten. Es wird häufig in Mikrodiensten und Webanwendungen verwendet.

package main

import ( "fmt" "net/http")

func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hallo, %s!", r.URL.Path[1:])}

func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil)}


Paket encoding/json: Arbeit mit JSON

Moderne Anwendungen tauschen ständig Daten im JSON-Format aus. Das Paket encoding/json ermöglicht es, Go-Strukturen einfach in JSON zu serialisieren und wieder zu deserialisieren.

import (    "encoding/json"    "fmt")

type User struct { Name string `json:"name"` Age int `json:"age"`}

func main() { user := User{Name: "Alexej", Age: 30} // Serialisierung in JSON jsonData, _ := json.Marshal(user) fmt.Println(string(jsonData)) // {"name":"Alexej","age":30}

// Deserialisierung aus JSON var decoded User json.Unmarshal(jsonData, &decoded) fmt.Println(decoded.Name) // Alexej}


Paket io und os: Arbeit mit Dateien und Strömen

Das Paket os bietet Funktionen für die Arbeit mit dem Betriebssystem: Lesen und Schreiben von Dateien, Arbeiten mit Umgebungsvariablen und Kommandozeilenargumenten. io enthält Schnittstellen für die Arbeit mit Datenströmen (Lesen/Schreiben).

import (    "io/ioutil"    "os")

func main() { // Schreiben in eine Datei data := []byte("Hallo, Go!") ioutil.WriteFile("example.txt", data, 0644)

// Lesen aus einer Datei content, _ := ioutil.ReadFile("example.txt") os.Stdout.Write(content)}


Paket sync und goroutines: Nebenläufigkeit

Go ist bekannt für seine integrierte Unterstützung von Nebenläufigkeit durch Goroutinen (leichte Threads) und Kanäle. Das Paket sync stellt Synchronisationsprimitive wie Mutex bereit

Empfehlungen