gobyexample-channel-directions

来源:https://github.com/xg-wang/gobyexample/tree/master/examples

//当使用通道作为函数的参数时,你可以指定这个通道是不是只用来
//发送或者接受值。这个特性提升了程序的类型安全性
package main

import "fmt"

//`ping` 函数定义了一个只允许发送数据的通道(发送一个新的值到通道)
func ping(pings chan<- string,msg string)  {
    pings <- msg
}
//`pong`函数允许通道('pings')来接收数据(从通道中接受一个值),另一通道(`pongs`)来发送数据
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 message")
    pong(pings,pongs)
    fmt.Println((<-pongs))

}

输出结果:

passed message

你可能感兴趣的:(gobyexample-channel-directions)