好像第一次看到这个知识点,作个记录。
注意通道在只能发射或只能接收信息时,<-这个符号放置的位置。
package main import "fmt" import "time" func main() { channel := make(chan string) go func(ch chan<- string) { ch <- "Hello, world" println("Finishing goroutine") }(channel) time.Sleep(5 * time.Second) go func(ch <-chan string) { msg := <-ch println(msg) }(channel) message := <-channel fmt.Println(message) }