Aller au contenu

Fermeture de canaux

Vous pouvez fermer un canal avec close(ch). Les récepteurs peuvent tester si un canal est fermé en utilisant v, ok := <-ch. Envoyer sur un canal fermé provoque une panique.

Fermer un canal et détecter la fermeture.

package main
import "fmt"
func main() {
ch := make(chan int, 2)
ch <- 1
ch <- 2
close(ch)
for i := 0; i < 3; i++ {
v, ok := <-ch
fmt.Printf("valeur=%d, ok=%t\n", v, ok)
}
}
Fenêtre de terminal
valeur=1, ok=true
valeur=2, ok=true
valeur=0, ok=false