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)
- }
