Sobes.tech
Junior — Middle

Comment implémentes-tu le travail avec les canaux dans ton projet?

sobes.tech IA

Réponse de l'IA

Dans mon projet, le travail avec les canaux en Go repose sur leur utilisation pour la synchronisation et l’échange de données entre goroutines. Je crée généralement des canaux avec le type de données nécessaire, par exemple, chan int ou chan string, et je les utilise pour transmettre des messages ou des signaux.

Exemple d’utilisation simple d’un canal :

func worker(ch chan int) {
    for val := range ch {
        fmt.Println("Valeur reçue :", val)
    }
}

func main() {
    ch := make(chan int)
    go worker(ch)

    ch <- 10
    ch <- 20
    close(ch) // Fermer le canal pour que le worker termine la boucle
}

Il est également important de fermer correctement les canaux pour éviter les blocages, et d’utiliser select pour travailler avec plusieurs canaux simultanément. Dans les projets, j’utilise souvent des canaux tamponnés pour éviter le blocage de l’expéditeur en cas de forte charge.