func main() {
i := 0
go func() {
for {
select {
case <-time.After(1 * time.Second):
fmt.Println(i)
}
}
}()
for j := 0; j < 10; j++ {
i++
time.Sleep(1 * time.Second)
}
time.Sleep(1 * time.Second)
}
一开始以为输出的结果是0 0 0 0 0 0 0 0
证明这个函数的变量是跟channel一样的,只要go func一直在执行,那读的这个变量的值也是会变的
所以最后的结果是1 2 3 4 5 6 7 8 9 10