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,导致程序崩溃问题.【案例演示】