Senior
Qu'est-ce que les canaux en Go et à quoi servent-ils ? Quels types de canaux existent ?
sobes.tech IA
Réponse de l'IA
Les canaux en Go sont un mécanisme pour transmettre des données entre goroutines, assurant la synchronisation et l’échange d’informations.
Principales caractéristiques :
- Permettent de transmettre des valeurs en toute sécurité entre des goroutines s’exécutant en parallèle.
- Garantissent le blocage de l’expéditeur si le canal est plein et du récepteur si le canal est vide.
Types de canaux :
- Bidirectionnels (chan T) : peuvent envoyer et recevoir des données.
- Uni-directionnels pour l’envoi (chan<- T) : peuvent uniquement envoyer des données.
- Uni-directionnels pour la réception (<-chan T) : peuvent uniquement recevoir des données.
Exemple d’utilisation d’un canal :
ch := make(chan int) // canal bidirectionnel
// Envoi dans une goroutine
go func() {
ch <- 42
}()
// Réception
val := <-ch
fmt.Println(val) // 42
Les canaux simplifient la communication et la synchronisation entre goroutines, évitant la nécessité de blocages explicites.