定向通道
默认的通道是双向的:make(chan T)
可读,可写
发送数据:chan <- data
读取数据:<- chan
定向的,也叫单向的通道
只读:只能接收
<- chan T
只写:只能发送
chan <- T
用于参数的传递
函数中:只有读的操作,可以传只读的通道
package main import "fmt" func main() { /* 双向: chan T --> chan <- data,写出数据,写 data <- chan,获取数据,读 单向:定向 chan <- T, 只支持写, <- chan T, 只读 */ ch1 := make(chan string) // 双向,可读,可写 done := make(chan bool) go test1(ch1, done) data :=<- ch1 //阻塞 fmt.Println("子goroutine传来:", data) ch1 <- "我是main。。" // 阻塞 <-done fmt.Println("main...over....") } //子goroutine-->写数据到ch1通道中 //main goroutine-->从ch1通道中取 func test1(ch1 chan string, done chan bool) { ch1 <- "我是小明"// 阻塞 data := <-ch1 // 阻塞 fmt.Println("main goroutine传来:",data) done <- true }