企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
### 单向channel特性 ~~~ ch := make(chan int) //创建一个双向channel //双向channel隐式转换为单向channel var WriteCh chan<- int = ch //只能写,不能读 var ReadCh <-chan int = ch //只能读,不能写 WriteCh <- 1000 <-ReadCh ~~~ ### 单向channel的应用 ~~~ //此通道只能写,不能读 func producer(out chan<- int) { for i := 0; i < 10; i++ { fmt.Println("写",i) out <- i * i } close(out) } //此通道只能读,不能写 func consumer(in <-chan int) { for value := range in { fmt.Println("读",value) } } func main() { ch := make(chan int) go producer(ch) //生产者,生产数字,写入channel consumer(ch) //消费者,从channel读取内容,打印 } ~~~ ~~~ 写 0 写 1 读 0 读 1 写 2 写 3 读 4 读 9 写 4 写 5 读 16 读 25 写 6 写 7 读 36 读 49 写 8 写 9 读 64 读 81 ~~~