Go 只读/只写channel详解编程语言

Go中channel可以是只读、只写、同时可读写的。

定义只读的channel

read_only := make (<-chan int)

定义只写的channel

write_only := make (chan<- int)

可同时读写

read_write := make (chan int)

定义只读和只写的channel意义不大,一般用于在参数传递中,见代码:

package main 
 
import ( 
    "fmt" 
    "time" 
) 
 
func main() { 
    c := make(chan int) 
    go send(c) 
    go recv(c) 
    time.Sleep(3 * time.Second) 
} 
//只能向chan里写数据 
func send(c chan<- int) { 
    for i := 0; i < 10; i++ { 
        c <- i 
    } 
} 
//只能取channel中的数据 
func recv(c <-chan int) { 
    for i := range c { 
        fmt.Println(i) 
    } 
}

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/17074.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论