Sobes.tech
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)