2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Le langage Go, également connu sous le nom de Golang, est un langage de programmation open source conçu par Google. Il est conçu pour offrir une vitesse de développement efficace, de bonnes performances, une syntaxe concise et une puissante bibliothèque standard. Le langage Go est particulièrement adapté à la création de systèmes distribués et d’architectures de microservices à grande échelle. Cet article vous aidera à apprendre le langage Go à partir de zéro, couvrant la syntaxe de base, les fonctionnalités avancées, les meilleures pratiques et les applications pratiques.
Voir le code source du projet en bas
Tout d’abord, vous devez installer l’environnement Go sur votre ordinateur. Visitez le site officiel de Go (https://golang.org/dl/) Téléchargez le package de langue Go adapté à votre système d'exploitation et suivez les instructions pour l'installer.
Aller
version sombre
- 1package main
- 2
- 3import "fmt"
- 4
- 5func main() {
- 6 fmt.Println("Hello, World!")
- 7}
Le langage Go fournit une variété de types de données intégrés, notamment des entiers (int, int8, int16, int32, int64), des types à virgule flottante (float32, float64), des booléens (bool), des chaînes (string), etc.
Le langage Go prend en charge les instructions if, les boucles for, les instructions switch et les instructions defer pour contrôler le flux du programme.
Les fonctions sont l'unité d'exécution de base du langage Go. Les fonctions peuvent accepter des paramètres et renvoyer des résultats.
Aller
version sombre
- 1func add(x int, y int) int {
- 2 return x + y
- 3}
Les pointeurs sont utilisés dans le langage Go pour manipuler directement les adresses mémoire.en utilisant*
et&
Opérateur, vous pouvez obtenir l'adresse d'une variable et la valeur pointée par l'adresse.
Aller
version sombre
- 1func increment(p *int) {
- 2 *p++
- 3}
Une interface dans Go définit un ensemble de méthodes qu'un type doit implémenter. Les interfaces rendent le code plus flexible et réutilisable.
Aller
version sombre
- 1type Shape interface {
- 2 Area() float64
- 3}
- 4
- 5type Circle struct {
- 6 Radius float64
- 7}
- 8
- 9func (c Circle) Area() float64 {
- 10 return math.Pi * c.Radius * c.Radius
- 11}
Le langage Go recommande d'utiliser des valeurs de retour d'erreur pour gérer les exceptions.
Aller
version sombre
- 1func divide(x, y int) (int, error) {
- 2 if y == 0 {
- 3 return 0, errors.New("cannot divide by zero")
- 4 }
- 5 return x / y, nil
- 6}
Le modèle de concurrence du langage Go est basé sur des goroutines et des canaux légers. Goroutine est un thread de niveau utilisateur dans le langage Go, et le canal est utilisé pour la communication et la synchronisation entre les goroutines.
Aller
version sombre
- 1func say(s string) {
- 2 for i := 0; i < 5; i++ {
- 3 fmt.Println(s)
- 4 }
- 5}
- 6
- 7func main() {
- 8 go say("world") // 开始一个新的goroutine
- 9 say("hello")
- 10}
Le contexte est utilisé pour transmettre les signaux d'annulation entre les goroutines, permettant au programme de mettre fin en douceur aux goroutines de longue durée.
Aller
version sombre
- 1func main() {
- 2 ctx, cancel := context.WithCancel(context.Background())
- 3 go func() {
- 4 select {
- 5 case <-ctx.Done():
- 6 fmt.Println("operation canceled")
- 7 case <-time.After(time.Second * 3):
- 8 fmt.Println("operation completed")
- 9 }
- 10 }()
- 11 time.Sleep(time.Second)
- 12 cancel()
- 13}
Le langage Go recommande d'utiliser une approche modulaire pour organiser le code. Chaque répertoire représente un package et y définit un ou plusieurs fichiers .go.
Aller au système de modules (go mod
) permet de gérer les dépendances externes du projet.utilisergo get
etgo mod tidy
Commandes pour ajouter et organiser les dépendances.
Le langage Go dispose d'un puissant cadre de test intégré, utiliseztesting
package pour écrire des cas de test.
Aller
version sombre
- 1import (
- 2 "testing"
- 3)
- 4
- 5func TestAdd(t *testing.T) {
- 6 tests := []struct {
- 7 x, y, want int
- 8 }{
- 9 {2, 2, 4},
- 10 {1, 3, 4},
- 11 {0, 0, 0},
- 12 }
- 13 for _, tt := range tests {
- 14 got := add(tt.x, tt.y)
- 15 if got != tt.want {
- 16 t.Errorf("add(%d, %d) = %d; want %d", tt.x, tt.y, got, tt.want)
- 17 }
- 18 }
- 19}
utilisergo build
Commande pour construire le fichier exécutable, utilisezgo install
Installez le projet dans$GOPATH/bin
répertoire pour faciliter les appels système.
Le langage Go est largement utilisé dans les services back-end, la programmation réseau, l'architecture de microservices, les outils DevOps, les bases de données, les middlewares et d'autres scénarios.
La nature hautement simultanée du langage Go en fait un choix idéal pour créer des microservices.
La bibliothèque standard du langage Go fournit une riche API de programmation réseau, comprenant un serveur HTTP, un client, WebSocket, TCP/IP, etc.
Le langage Go a une vitesse de compilation rapide et une forte portabilité, et convient au développement d'outils DevOps, tels que l'orchestration de conteneurs, l'intégration continue et les outils de déploiement continu.
Le langage Go est progressivement devenu l'un des langages courants pour le développement de logiciels modernes avec sa syntaxe concise, sa puissante bibliothèque standard et son modèle de concurrence efficace. En étudiant cet article, vous maîtriserez non seulement les connaissances de base du langage Go, mais vous comprendrez également ses fonctionnalités avancées et ses meilleures pratiques, jetant ainsi une base solide pour le développement futur du langage Go. Que vous construisiez des services back-end hautes performances ou développiez des systèmes distribués complexes, le langage Go sera votre partenaire indispensable.
Adresse de téléchargement du code source du projet :https://download.csdn.net/download/qq_42072014/89531977