Einführung
Dieses Labor zielt darauf ab, Ihr Verständnis der Verwendung von Kanälen als Funktionsparameter in Golang zu testen.
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, Ihr Verständnis der Verwendung von Kanälen als Funktionsparameter in Golang zu testen.
Das Problem, das in diesem Labor gelöst werden soll, besteht darin, den gegebenen Code zu modifizieren, um sicherzustellen, dass die als Funktionsparameter verwendeten Kanäle nur zum Senden oder Empfangen von Werten angegeben werden.
$ go run channel-directions.go
passed message
Hier ist der vollständige Code:
// Wenn Kanäle als Funktionsparameter verwendet werden, können Sie
// angeben, ob ein Kanal nur zum Senden oder Empfangen von
// Werten gedacht ist. Diese Spezifität erhöht die Typsicherheit
// des Programms.
package main
import "fmt"
// Die `ping`-Funktion akzeptiert nur einen Kanal zum Senden
// von Werten. Ein Versuch, von diesem Kanal zu empfangen,
// würde ein Kompilierungsfehler sein.
func ping(pings chan<- string, msg string) {
pings <- msg
}
// Die `pong`-Funktion akzeptiert einen Kanal zum Empfangen
// (`pings`) und einen zweiten zum Senden (`pongs`).
func pong(pings <-chan string, pongs chan<- string) {
msg := <-pings
pongs <- msg
}
func main() {
pings := make(chan string, 1)
pongs := make(chan string, 1)
ping(pings, "passed message")
pong(pings, pongs)
fmt.Println(<-pongs)
}
In diesem Labor haben Sie gelernt, wie Sie angeben können, ob ein Kanal nur zum Senden oder Empfangen von Werten gedacht ist, was die Typsicherheit des Programms erhöht.