### 基本使用 ~~~ ch := make(chan int,3) ch <- 1 ch <- 2 <- ch val := <-ch fmt.Println(val) close(ch) //使用 for range 关闭管道的时候 必须使用close() 关闭写入管道 for v := range ch{ fmt.Println(v) } ~~~ // 2 (遵循先入先出) ### 只写管道 ~~~ readCh := make(chan<- int,200) readCh <- 1 readCh <- 5 fmt.Println(len(readCh))//2 fmt.Println(cap(readCh))//200 ~~~ ### 只读管道 ~~~ func getChan(num <-chan int) { val := <-num fmt.Println(val) } ~~~ ### 只读 只写管道示例 ![](https://img.kancloud.cn/82/11/8211fc7986ad29351198a3ef6dff9294_632x390.png)