在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
var ch1 chan int //ch1是一个正常的channel,不是单向的 var ch2 chan <- float64 //ch2是一个单向的channel,只用于写float64的数据 var ch3 <- chan int //ch3是一个单向的channel,只用于读取int数据 package main func main() { //创建一个channel,双向的 ch := make(chan int) //定义一个单向的只能写的channel var writech chan <- int = ch //但如果写成下面这样就会报错 <-writech //定义一个单向的只能读的channel var readch <- chan int = ch //写成下面这样就会有问题 readch<-555 //下面都会正常编译通过 writech <- 666 <- readch //单向无法转换成双向 var ch2 chan int = writech } 它的应用 package main import "fmt" //代表此channel只能写,不能读 func producer(out chan <- int) { for i:=0; i<=10; i++ { out<-i*i } close(out) } func consumer(in <-chan int) { for num := range in{ fmt.Println("num = ", num) } } func main() { //创建一个双向通道ch ch := make(chan int) //生产者,生产数字,写入channel go producer(ch) //chennel传参,引用传递 //消费者,从channel里读取数字、然后打印 consumer(ch) } 执行的结果 num = 0 num = 1 num = 4 num = 9 num = 16 num = 25 num = 36 num = 49 num = 64 num = 81 num = 100
|
请发表评论