Aller au contenu

Directions de canaux

Lorsque vous utilisez des canaux comme paramètres de fonction, vous pouvez spécifier leur direction : chan<- T (envoi seulement) ou <-chan T (réception seulement). Cela améliore la sécurité de type.

Passer un canal en envoi seulement à un producteur et un canal en réception seulement à un consommateur.

package main
import "fmt"
func producteur(out chan<- int) {
for i := 0; i < 3; i++ {
out <- i
}
close(out)
}
func consommateur(in <-chan int) {
for v := range in {
fmt.Println(v)
}
}
func main() {
ch := make(chan int)
go producteur(ch)
consommateur(ch)
}
Fenêtre de terminal
0
1
2