Sobes.tech
Junior — Middle

Comment l'échange de messages entre l'expéditeur et le destinataire des données est-il réalisé en langage Go?

sobes.tech IA

Réponse de l'IA

Dans le langage Go, l’échange de messages entre l’expéditeur et le récepteur de données est réalisé à l’aide de canaux (channels). Les canaux permettent aux goroutines d’échanger des données en toute sécurité, en synchronisant leur exécution.

Un canal est créé à l’aide de la fonction make et peut être tamponné ou non tamponné :

ch := make(chan int)        // canal non tamponné
chBuf := make(chan int, 5)  // canal tamponné avec une taille de tampon de 5

Envoi dans le canal:

ch <- 42  // envoyer la valeur 42 dans le canal ch

Réception du canal:

value := <-ch  // obtenir la valeur du canal ch

Exemple d’échange de messages entre deux goroutines:

package main

import (
    "fmt"
    "time"
)

func main() {
    ch := make(chan string)

    go func() {
        ch <- "Bonjour de la goroutine"
    }()

    msg := <-ch
    fmt.Println(msg)
}

Ainsi, les canaux en Go assurent une communication sûre et pratique entre les flux d’exécution parallèles.