通过函数的方式传递只读或者只写管道

  1. // 只写
  2. func in(channel chan<- int){
  3. channel<-1
  4. channel<-2
  5. }
  6. // 只读
  7. func out(channel <-chan int){
  8. fmt.Println(<-channel)
  9. fmt.Println(<-channel)
  10. }
  11. func main(){
  12. var channel chan int = make(chan int,3)
  13. in(channel)
  14. out(channel)
  15. fmt.Println(<-channel)
  16. }

可以同通过定义只读或者只写变量的方式来实现

  1. // 只写
  2. func in(channel chan<- int){
  3. channel<-1
  4. channel<-2
  5. }
  6. // 只读
  7. func out(channel <-chan int){
  8. fmt.Println(<-channel)
  9. fmt.Println(<-channel)
  10. }
  11. func main(){
  12. var channel chan int = make(chan int,3)
  13. var rchannel <-chan int = channel
  14. var wchannel chan <- int = channel
  15. in(wchannel)
  16. out(rchannel)
  17. fmt.Println(<-channel)
  18. }
文档更新时间: 2021-08-21 15:52   作者:张尚