Einführung
Das Channels-Labor ist dazu gedacht, Ihr Verständnis von Kanälen in Golang zu testen. Kanäle werden verwendet, um parallele Goroutinen zu verbinden und Werte zwischen ihnen zu senden und empfangen.
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
Das Channels-Labor ist dazu gedacht, Ihr Verständnis von Kanälen in Golang zu testen. Kanäle werden verwendet, um parallele Goroutinen zu verbinden und Werte zwischen ihnen zu senden und empfangen.
In diesem Labor müssen Sie einen neuen Kanal erstellen und einen Wert von einer neuen Goroutine in diesen senden. Anschließend empfangen Sie den Wert aus dem Kanal und geben ihn aus.
make(chan val-type)
verwenden, um einen neuen Kanal zu erstellen.channel <-
verwenden, um einen Wert in den Kanal zu senden.<-channel
verwenden, um einen Wert aus dem Kanal zu empfangen.## Wenn wir das Programm ausführen, wird die Nachricht
## `"ping"` erfolgreich von einer Goroutine über unseren
## Kanal an eine andere weitergeleitet.
$ go run channels.go
ping
## Standardmäßig blockieren Senden und Empfangen, bis sowohl
## der Sender als auch der Empfänger bereit sind. Diese Eigenschaft
## hat es uns ermöglicht, am Ende unseres Programms auf die
## `"ping"`-Nachricht zu warten, ohne weitere Synchronisation
## verwenden zu müssen.
Hier ist der vollständige Code:
// _Kanäle_ sind die Rohre, die parallele Goroutinen verbinden.
// Sie können Werte in Kanäle von einer Goroutine senden und
// diese Werte in eine andere Goroutine empfangen.
package main
import "fmt"
func main() {
// Erstellen Sie einen neuen Kanal mit `make(chan val-type)`.
// Kanäle sind vom Typ der Werte, die sie transportieren, typisiert.
messages := make(chan string)
// _Senden_ Sie einen Wert in einen Kanal, indem Sie die
// Syntax `channel <-` verwenden. Hier senden wir `"ping"`
// an den oben erstellten `messages`-Kanal von einer neuen
// Goroutine aus.
go func() { messages <- "ping" }()
// Die Syntax `<-channel` _empfängt_ einen Wert aus dem
// Kanal. Hier empfangen wir die oben gesendete `"ping"`-Nachricht
// und geben sie aus.
msg := <-messages
fmt.Println(msg)
}
Das Channels-Labor testet Ihre Fähigkeit, Kanäle in Golang zu verwenden, um Werte zwischen parallelen Goroutinen zu senden und zu empfangen. Durch die Fertigstellung dieses Labs werden Sie ein besseres Verständnis dafür erlangen, wie Kanäle funktionieren und wie sie verwendet werden können, um die Leistung Ihrer Golang-Programme zu verbessern.