..
Golang中的chan
Golang 中数据结构管道。
- 声明
var ch chan int
TIP
每一个管道只能存储一种类型的数据。
- make()
1) 无缓冲
ch := make(chan string)
2) 有缓冲
ch := make(chan string, 3)
- 操作符
<-
表示数据流动的方向。
TIP 默认是双向的,但是可以限定读写。
func f(ch chan int) // 可读可写
func f(ch <- chan int) // 只能从管道中读取
func f(ch chan <- int) // 只能写数据
len()
: 缓冲区中数据的个数。
cap()
: 缓冲区的大小。
- 与
select
的配合
select 可以监控多个管道,其中某个操作触发,则进入指定的case中。
for {
select {
case e := <- chA:
fmt.Println("From chA")
case e := <- chB:
fmt.Println("From chB")
default:
fmt.Println("Default.")
}
}
记录下管道的基本用法,准备入坑Golang了。