¿Es esto porque el compilador go optimizó el código?
package main
import "time"
func main() {
i := 1
go func() {
for {
i++
}
}()
<-time.After(1 * time.Second)
println(i)
}
La salida es siempre1
.
Sin embargo, es absolutamente que 1s es suficiente para elfor
bucle para repasar muchas, muchas veces.
Pienso que eli
en el cierre está eli
en elmain
func.
Ver el código a continuación.
package main
import "time"
func main() {
i := 1
go func() {
for {
i++
println("+1")
}
}()
<-time.After(1 * time.Second)
println(i)
}
Después de muchas líneas de "+1", la salida es exactamente un gran número como se esperaba.