¿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.

Respuestas a la pregunta(2)

Su respuesta a la pregunta