Einführung
Dieses Labor zielt darauf ab, Ihre Fähigkeit zu testen, über die von einem Kanal empfangenen Werte mithilfe der for
- und range
-Syntax in Golang zu iterieren.
This tutorial is from open-source community. Access the source code
💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken
Dieses Labor zielt darauf ab, Ihre Fähigkeit zu testen, über die von einem Kanal empfangenen Werte mithilfe der for
- und range
-Syntax in Golang zu iterieren.
Sie müssen eine Funktion schreiben, die einen Kanal von ganzen Zahlen entgegennimmt und die Summe aller empfangenen ganzen Zahlen zurückgibt.
sumInts
heißen.chan int
entgegennehmen.$ go run range-over-channels.go
one
two
## Dieses Beispiel zeigte auch, dass es möglich ist,
## einen nicht leeren Kanal zu schließen, aber die
## verbleibenden Werte weiterhin zu empfangen.
Hier ist der vollständige Code:
// In einem [vorherigen](range) Beispiel haben wir gesehen, wie `for` und
// `range` die Iteration über grundlegende Datenstrukturen ermöglichen.
// Wir können auch diese Syntax verwenden, um über
// von einem Kanal empfangene Werte zu iterieren.
package main
import "fmt"
func main() {
// Wir werden über 2 Werte im `queue`-Kanal iterieren.
queue := make(chan string, 2)
queue <- "one"
queue <- "two"
close(queue)
// Diese `range`-Iteration geht über jedes Element, das
// aus `queue` empfangen wird. Da wir oben den
// Kanal geschlossen haben, endet die Iteration nach
// dem Empfang der 2 Elemente.
for elem := range queue {
fmt.Println(elem)
}
}
In diesem Labor hatten Sie die Aufgabe, eine Funktion zu schreiben, die alle von einem Kanal empfangenen ganzen Zahlen mithilfe der for
- und range
-Syntax in Golang aufsummiert. Durch die Fertigstellung dieses Labors sollten Sie ein besseres Verständnis dafür haben, wie man über von einem Kanal empfangene Werte iteriert und wie man Goroutinen verwendet, um Werte von einem Kanal zu empfangen.