16.9. 闭包和协程的使用
在版本 D 中,我们输出这个数组的值,为什么版本 B 不能而版本 D 可以呢?
因为版本 D 中的变量声明是在循环体内部,所以在每次循环时,这些变量相互之间是不共享的,所以这些变量可以单独的被每个闭包使用。
for ix := range values {
val := values[ix]
go func() {
fmt.Print(val, " ")
}()
}
那同时也能说明ix
不属于for语句
的内部变量吗?
推荐文章: