/**
默认情况下 通道是双向的,可以发送接收数据
但是,我们常见一个通道作为参数进行传递而值希望对方是单向使用的,要么只让它发送
数据,要么只让他接收数据,这时我们可以指定通道的方向。
单向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)
}
5.16 go 单向的channel
猜你喜欢
转载自blog.csdn.net/h4241778/article/details/105374588
今日推荐
周排行