Junior — Middle
Comment implémenter la création et la transmission de données via un canal dans votre système?
sobes.tech IA
Réponse de l'IA
En Go, pour créer et transmettre des données via un canal, on utilise le type intégré chan. Les canaux permettent d’échanger des données en toute sécurité entre goroutines.
Exemple de création et d’utilisation d’un canal :
package main
import (
"fmt"
)
func main() {
// Créer un canal pour transmettre des entiers
ch := make(chan int)
// Lancer une goroutine qui envoie des données dans le canal
go func() {
ch <- 42 // envoyer le nombre 42
close(ch) // fermer le canal après l’envoi
}()
// Recevoir des données du canal
for val := range ch {
fmt.Println("Valeur reçue :", val)
}
}
Ici :
make(chan int)crée un canal pour transmettre desint.- L’opérateur
<-est utilisé pour envoyer (ch <- 42) et recevoir (val := <-ch) des données. - La fermeture du canal (
close(ch)) indique qu’il n’y aura plus de données. - La boucle
for rangelit du canal jusqu’à sa fermeture.
Ainsi, les canaux assurent la synchronisation et la transmission de données entre threads d’exécution parallèles.