错误如下,是在main函数外使用:=定义了一个变量。
intChan2 :=make(chan int,100)
//这个是因为:=操作符导致的,:=不能用于声明全局变量!只能在函数内部使用。
//:=只用来声明临时变量, 初始化全局变量需使用var关键字,正确操作如下:
for i := 0;i < 100;i++ {
intChan2 <- i * 2
intChan2 :=make(chan int,100)
//这个是因为:=操作符导致的,:=不能用于声明全局变量,只能在函数内部使用。
//:=只用来声明临时变量, 初始化全局变量需使用var关键字
func main(){
intChan2 :=make(chan int,100)
//这个是因为:=操作符导致的,:=不能用于声明全局变量!只能在函数内部使用。
//:=只用来声明临时变量, 初始化全局变量需使用var关键字,正确操作如下:
for i := 0;i < 100;i++ {
intChan2 <- i * 2
}
//遍历管道的时候,不能使用普通的for循环结构
//比如使用for i:= 0;i < len(intChan2);i++{ } 会失败
//前提是会把管道关闭,当取完的时候会及时的停止。
//在遍历的时候,如果channel没有关闭,则会出现deadlock的错误。
close(intChan2)
for v := range intChan2{
fmt.Println("v=",v)
}
}