Bibliothèque standard Go (Golang) : aperçu complet
Go (ou Golang) est un langage de programmation compilé moderne créé par Google, conçu pour la simplicité, la performance et la fiabilité. L'une des principales raisons de sa popularité est sa bibliothèque standard puissante et bien documentée. Contrairement à de nombreux autres langages, Go est livré avec un ensemble riche de packages « prêts à l'emploi » qui couvrent pratiquement toutes les tâches de base : du traitement de texte à la construction de services web à haute charge. Dans cet aperçu, nous examinerons en détail les packages clés de la bibliothèque standard Go avec des exemples de code.
Package fmt : entrée/sortie formatée
C'est le premier package que tout développeur Go rencontre. Il fournit des fonctions pour l'affichage formaté dans la console et la lecture de données.
package main
import "fmt"
func main() { name := "Go" version := 1.22 // Affichage formaté fmt.Printf("Langue : %s, Version : %.1f", name, version)
// Assemblage d'une chaîne sans affichage message := fmt.Sprintf("Bonjour, %s !", name) fmt.Println(message)}Packages strings et strconv : manipulation de chaînes
Le package strings contient des fonctions pour la recherche, le remplacement, la division et la concaténation de chaînes. strconv est responsable de la conversion des chaînes en nombres et vice versa.
import ( "fmt" "strconv" "strings")
func main() { s := "Bonjour le monde !" // Recherche de sous-chaîne if strings.Contains(s, "monde") { fmt.Println("Trouvé") } // Division de chaîne parts := strings.Split(s, ", ") fmt.Println(parts[0]) // Bonjour
// Conversion d'une chaîne en nombre num, _ := strconv.Atoi("42") fmt.Println(num + 8) // 50}Package net/http : création de serveurs et clients HTTP
L'un des packages les plus puissants. Il permet de lancer un serveur HTTP complet en quelques lignes de code. Largement utilisé dans les microservices et les applications web.
package main
import ( "fmt" "net/http")
func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Bonjour, %s !", r.URL.Path[1:])}
func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil)}Package encoding/json : manipulation de JSON
Les applications modernes échangent constamment des données au format JSON. Le package encoding/json permet de sérialiser et désérialiser facilement les structures Go en JSON et vice versa.
import ( "encoding/json" "fmt")
type User struct { Name string `json:"name"` Age int `json:"age"`}
func main() { user := User{Name: "Alexei", Age: 30} // Sérialisation en JSON jsonData, _ := json.Marshal(user) fmt.Println(string(jsonData)) // {"name":"Alexei","age":30}
// Désérialisation depuis JSON var decoded User json.Unmarshal(jsonData, &decoded) fmt.Println(decoded.Name) // Alexei}Packages io et os : gestion des fichiers et des flux
Le package os fournit des fonctions pour interagir avec le système d'exploitation : lecture et écriture de fichiers, gestion des variables d'environnement et des arguments de ligne de commande. io contient des interfaces pour travailler avec des flux de données (lecture/écriture).
import ( "io/ioutil" "os")
func main() { // Écriture dans un fichier data := []byte("Bonjour, Go !") ioutil.WriteFile("exemple.txt", data, 0644)
// Lecture depuis un fichier content, _ := ioutil.ReadFile("exemple.txt") os.Stdout.Write(content)}Package sync et goroutines : concurrence
Go est réputé pour sa prise en charge intégrée de la concurrence via les goroutines (threads légers) et les canaux. Le package sync fournit des primitives de synchronisation, telles que le mutex
Aussi dans la bibliothèque
Travailler avec XML en Java : DOM, SAX, StAX et JAXB — guide complet
Travailler avec Apache Kafka en C++ : la bibliothèque librdkafka et exemples pratiques
Travailler avec Excel en TypeScript : bibliothèques, exemples et outils
Apprentissage automatique en Java : aperçu des bibliothèques clés