package main
import (
"fmt"
"time"
)
func main() {
i := 1
go func() {
time.Sleep(100*time.Millisecond)
fmt.Println("i =", i)
} ()
i++
time.Sleep(1000*time.Millisecond)
}
go func中的i是执行了i++后的i
package main
import (
"fmt"
"time"
)
func main() {
i := 1
go func(i int) {
time.Sleep(100*time.Millisecond)
fmt.Println("i =", i)
} (i)// 通过匿名函数参数将值传入闭包
i++
time.Sleep(1000*time.Millisecond)
}
go func 中的i是go func之前的i