Introduction
Ce laboratoire vise à tester votre compréhension des canaux tamponnés en Golang.
This tutorial is from open-source community. Access the source code
💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici
Ce laboratoire vise à tester votre compréhension des canaux tamponnés en Golang.
Par défaut, les canaux en Golang sont non tamponnés, ce qui signifie qu'ils n'acceptent des envois (chan <-
) que s'il existe une réception correspondante (<- chan
) prête à recevoir la valeur envoyée. Cependant, les canaux tamponnés acceptent un nombre limité de valeurs sans récepteur correspondant pour ces valeurs. Dans ce laboratoire, vous êtes requis de créer un canal tamponné et d'envoyer des valeurs dans le canal sans réception concurrente correspondante.
$ go run channel-buffering.go
buffered
channel
Voici le code complet ci-dessous :
// Par défaut, les canaux sont _non tamponnés_, ce qui signifie qu'ils
// accepteront seulement des envois (`chan <-`) s'il existe une
// réception correspondante (`<- chan`) prête à recevoir la
// valeur envoyée. Les _canaux tamponnés_ acceptent un nombre limité
// de valeurs sans récepteur correspondant pour ces valeurs.
package main
import "fmt"
func main() {
// Ici, nous `créons` un canal de chaînes de caractères avec un
// tampon de 2 valeurs.
messages := make(chan string, 2)
// Étant donné que ce canal est tamponné, nous pouvons envoyer
// ces valeurs dans le canal sans réception concurrente
// correspondante.
messages <- "buffered"
messages <- "channel"
// Plus tard, nous pouvons recevoir ces deux valeurs comme d'habitude.
fmt.Println(<-messages)
fmt.Println(<-messages)
}
Dans ce laboratoire, vous avez appris à créer un canal tamponné en Golang et à envoyer des valeurs dans le canal sans réception concurrente correspondante. Cela est utile dans des scénarios où vous voulez envoyer des valeurs à un canal sans bloquer l'expéditeur.