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
Auch in der Bibliothek
Tokio für Rust: Vollständige Anleitung mit Beispielen
Konfiguration von Swift-Apps: Die Bibliothek SwiftyConfiguration
Elasticsearch-Client für Swift (iOS/macOS) – vollständige Anleitung
Elasticsearch-Client für Kotlin: Integration, Beispiele und Möglichkeiten
JWT-Tokens in C++: Die Bibliothek jwt-cpp für die Authentifizierung