Partage de technologie

Aller au didacticiel détaillé de la langue

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

1. Bases du langage Go

1.1 Installer l'environnement Go

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.

1.2 Programme Bonjour tout le monde

Aller

version sombre

  1. 1package main
  2. 2
  3. 3import "fmt"
  4. 4
  5. 5func main() {
  6. 6 fmt.Println("Hello, World!")
  7. 7}

1.3 Types de données

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.

1.4 Structure de contrôle

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.

1.5 Fonctions

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

  1. 1func add(x int, y int) int {
  2. 2 return x + y
  3. 3}

1.6 Pointeurs

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

  1. 1func increment(p *int) {
  2. 2 *p++
  3. 3}

2. Langue Go avancée

2.1 Interfaces

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

  1. 1type Shape interface {
  2. 2 Area() float64
  3. 3}
  4. 4
  5. 5type Circle struct {
  6. 6 Radius float64
  7. 7}
  8. 8
  9. 9func (c Circle) Area() float64 {
  10. 10 return math.Pi * c.Radius * c.Radius
  11. 11}

2.2 Gestion des erreurs

Le langage Go recommande d'utiliser des valeurs de retour d'erreur pour gérer les exceptions.

Aller

version sombre

  1. 1func divide(x, y int) (int, error) {
  2. 2 if y == 0 {
  3. 3 return 0, errors.New("cannot divide by zero")
  4. 4 }
  5. 5 return x / y, nil
  6. 6}

2.3 Concurrence et goroutine

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

  1. 1func say(s string) {
  2. 2 for i := 0; i < 5; i++ {
  3. 3 fmt.Println(s)
  4. 4 }
  5. 5}
  6. 6
  7. 7func main() {
  8. 8 go say("world") // 开始一个新的goroutine
  9. 9 say("hello")
  10. 10}

2.4 Context

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

  1. 1func main() {
  2. 2 ctx, cancel := context.WithCancel(context.Background())
  3. 3 go func() {
  4. 4 select {
  5. 5 case <-ctx.Done():
  6. 6 fmt.Println("operation canceled")
  7. 7 case <-time.After(time.Second * 3):
  8. 8 fmt.Println("operation completed")
  9. 9 }
  10. 10 }()
  11. 11 time.Sleep(time.Second)
  12. 12 cancel()
  13. 13}

3. Accédez aux meilleures pratiques linguistiques

3.1 Organisation du code

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.

3.2 Gestion des dépendances

Aller au système de modules (go mod ) permet de gérer les dépendances externes du projet.utilisergo getetgo mod tidyCommandes pour ajouter et organiser les dépendances.

3.3 Tests

Le langage Go dispose d'un puissant cadre de test intégré, utiliseztestingpackage pour écrire des cas de test.

Aller

version sombre

  1. 1import (
  2. 2 "testing"
  3. 3)
  4. 4
  5. 5func TestAdd(t *testing.T) {
  6. 6 tests := []struct {
  7. 7 x, y, want int
  8. 8 }{
  9. 9 {2, 2, 4},
  10. 10 {1, 3, 4},
  11. 11 {0, 0, 0},
  12. 12 }
  13. 13 for _, tt := range tests {
  14. 14 got := add(tt.x, tt.y)
  15. 15 if got != tt.want {
  16. 16 t.Errorf("add(%d, %d) = %d; want %d", tt.x, tt.y, got, tt.want)
  17. 17 }
  18. 18 }
  19. 19}

3.4 Créer et déployer

utilisergo buildCommande pour construire le fichier exécutable, utilisezgo installInstallez le projet dans$GOPATH/binrépertoire pour faciliter les appels système.

4. Application pratique du langage Go

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.

4.1 Architecture des microservices

La nature hautement simultanée du langage Go en fait un choix idéal pour créer des microservices.

4.2 Programmation réseau

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.

4.3 Outils DevOps

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.

5. Résumé

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