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.