Channel管道

Channel管道

1、 var 管道名字 chan 数据类型, eg:var intChan chan int 定义整形管道;
2、管道channel是引用类型,需要初始化才能写入数据,需要Make分配内存,
分配内存:intChan=make(chan int,3) 容量为3;

package main
import (
	"fmt"
)
//管道类似于队列
func main(){
    
    
   var intchan chan int   //定义int类型的管道
   intchan=make(chan int,3)   //分配空间,足以说明intchan是引用类型,Intchan指向一个地址
//    fmt.Println(intchan)
//向管道中存入数据,依次存放,超过容量则会出现死锁
   intchan<-10
   var num int =11
   intchan<-num
   intchan<-(-1)
   fmt.Printf("intchan长度=%v,容量=%v\n",len(intchan),cap(intchan))
//向管道中取出数据,去除数据过多就会出现死锁
   var num1,num2,num3 int
   num1=<-intchan
   num2=<-intchan
   num3=<-intchan
   fmt.Printf("%v,%v,%v\n",num1,num2,num3)
   fmt.Printf("intchan长度=%v,容量=%v\n",len(intchan),cap(intchan))
}

在代码中管道进入是从右边进入channel<-数据,从左边出去数据<-channel

猜你喜欢

转载自blog.csdn.net/yyq1102394156/article/details/114091717
今日推荐