go学习part19(4)

channel的一些细节

280_尚硅谷_管道的注意事项和细节(2)_哔哩哔哩_bilibili

281_尚硅谷_管道的注意事项和细节(3)_哔哩哔哩_bilibili

1.channel可以声明只读或者只写


1) channel可以声明为只读,或者只写性质【案例演示】

2) channel只读和只写的最佳实践案例

只读只写一般用于形参,可以限制接收的管道在函数里的操作
 

 

package main

import "fmt"

func main() {

	//管道可以声明为只读或者只写
	//1.在默认情况下下,管道是双向
	//var chan1 chan int //可读可写
	//2.只写
	var chan2 chan<- int //从chan入
	chan2 = make(chan int, 2)
	chan2 <- 20 //只写
	fmt.Println(chan2)

	//3.只读
	var chan3 <-chan int //从chan出
	chan3 = make(chan int, 2)
	fmt.Println(chan3)

}

3)使用select可以解决从管道取数据的阻塞问题【案例演示】

 

 


4) goroutine中使用recover,解决协程中出现panic,导致程序崩溃问题.【案例演示】

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值