channel-directions.go

package main

import "fmt"

//当使用通道作为函数的参数,可以指定这个通道只用来发送或接收值

// 只允许发送数据的通道
func ping(pings chan<- string, msg string) {
	pings <- msg
}

// 只允许接收来自ping通道的数据
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 msg")
	pong(pings, pongs)
	fmt.Println(<-pongs)
}

Golang协程-通道方向_开发语言