Introduction
Ce laboratoire vise à tester votre capacité à itérer sur les valeurs reçues à partir d'un canal en utilisant la syntaxe for
et range
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 capacité à itérer sur les valeurs reçues à partir d'un canal en utilisant la syntaxe for
et range
en Golang.
Vous êtes requis d'écrire une fonction qui prend un canal d'entiers et renvoie la somme de tous les entiers reçus à partir du canal.
sumInts
.chan int
.$ go run range-over-channels.go
one
two
## Cet exemple a également montré qu'il est possible de fermer
## un canal non vide mais de recevoir encore les valeurs restantes.
Voici le code complet ci-dessous :
// Dans un [exemple précédent](range), nous avons vu comment `for` et
// `range` permettent d'itérer sur des structures de données de base.
// Nous pouvons également utiliser cette syntaxe pour itérer sur
// les valeurs reçues à partir d'un canal.
package main
import "fmt"
func main() {
// Nous allons itérer sur 2 valeurs dans le canal `queue`.
queue := make(chan string, 2)
queue <- "one"
queue <- "two"
close(queue)
// Cette `range` itère sur chaque élément au fur et à mesure qu'il est
// reçu à partir de `queue`. Comme nous avons `fermé` le
// canal ci-dessus, l'itération se termine après
// avoir reçu les 2 éléments.
for elem := range queue {
fmt.Println(elem)
}
}
Dans ce laboratoire, vous deviez écrire une fonction qui additionne tous les entiers reçus à partir d'un canal en utilisant la syntaxe for
et range
en Golang. En terminant ce laboratoire, vous devriez mieux comprendre comment itérer sur les valeurs reçues à partir d'un canal et comment utiliser des goroutines pour recevoir des valeurs à partir d'un canal.