Sobes.tech
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 des int.
  • 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 range lit du canal jusqu’à sa fermeture.

Ainsi, les canaux assurent la synchronisation et la transmission de données entre threads d’exécution parallèles.