5.16 go 单向的channel

/**
 默认情况下 通道是双向的,可以发送接收数据
 但是,我们常见一个通道作为参数进行传递而值希望对方是单向使用的,要么只让它发送
 数据,要么只让他接收数据,这时我们可以指定通道的方向。
 
 单向channel变量声明非常简单如下:
 var ch1 chan int       //ch1是一个正常的channel双向的
 var ch2 chan<- float64 //ch2是单向的channel,只用于写float64数据
 var ch3 <-chan int     //ch3是单向的channel,只用于读取int数据

 chan<- 表示数据进入通道    <-chan 表示数据从通道出来
  
 可以将channel隐式转换为单向队列,不能将单向channel转变为双向channel
 例子:
 c:=make(chan int,3)
 var send chan<-int=c
 var recive <-chan int=c



*/

package main

import "fmt"

func main(){
	//创建一个channel 双向的
	ch:=make(chan int,2)
	
	//单通道写入
	var writech chan<-int =ch
	
	//单通道读出
	var readch <-chan int=ch
	
	writech<-44
	
	num:=<-readch
	fmt.Println(num)
	
	
	
	
	
	
}
发布了145 篇原创文章 · 获赞 115 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/h4241778/article/details/105374588