再探channel
不要通过共享内存来通信,而应该通过通信来共享内存
package main
import (
"fmt"
)
func main() {
//声明通道
var c chan int
fmt.Println(c) //nil
if c == nil {
c = make(chan int)
fmt.Printf("数据类型是: %T, %p\n", c,c) //chan int 0xc00008c060
}
go func() {
for i:=0;i<10;i++{
time.Sleep(1*time.Second)
//将i发送至通道中
c <- i
}
close(c)
}()
for{
//循环接收通道的返回值
_i,ok := <- c
fmt.Println(_i,ok)
//当通道关闭后 跳出循环
if !ok{
break
}
}
}
最后更新于