通道(Channels)是连接并发 goroutine 的管道。你可以从一个 goroutine 向通道发送值,并在另一个 goroutine 中接收这些值。
package main
import "fmt"
func main() {
// 要创建一个新的通道,可以使用 make(chan val-type)。通道的类型由它传递的值的类型决定。
messages := make(chan string)
// 要使用 channel <- 语法将值发送到通道,你可以像下面这样操作。在这个例子中,我们从一个新的 goroutine 向 messages 通道发送 "ping":
go func() { messages <- "ping" }()
// <-channel 语法用于从通道接收值。在下面的示例中,我们将接收之前发送的 "ping" 消息并将其打印出来:
msg := <-messages
fmt.Println(msg)
}当我们运行这个程序时,"ping" 消息会成功地通过通道从一个 goroutine 传递到另一个 goroutine。 运行结果:
$ go run channels.go
ping原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。