Junior
Quelles opérations peut-on effectuer avec les canaux en Go?
sobes.tech IA
Réponse de l'IA
- Envoi (
<-chan) - Réception (
chan<-) - Fermeture (
close) - Vérification de la fermeture (deuxième valeur retournée lors de la réception)
- Utilisation dans
select - Définition de la capacité (avec
cap) - Définition du nombre actuel d'éléments (avec
len)
Exemple :
// Création d'un canal tamponné
ch := make(chan int, 5)
// Envoi d'une valeur
ch <- 10
// Réception d'une valeur
val := <-ch
// Vérification si le canal est fermé lors de la réception
val, ok := <-ch
// Fermeture du canal
close(ch)
// Utilisation dans select
select {
case msg1 := <-ch1:
// traitement des messages de ch1
case msg2 := <-ch2:
// traitement des messages de ch2
default:
// pas de messages disponibles
}
// Définition de la capacité
bufferSize := cap(ch)
// Nombre actuel d'éléments
currentElements := len(ch)