为什么不能在go中运行go功能?
这是以下代码:为什么不能在go中运行go功能?,go,Go,这是以下代码: func main() { values := []int{1, 2, 3, 4} for _, v := range values { go func(x int) { fmt.Println(x) }(v) } } 如果此代码没有go关键字,它将打印1、2、3、4 但它现在不能打印任何代码,为什么 go版本:1.5.2 darwin/amd64简短:在末尾等待,它将打印出来。 更好的选择:通过通
func main() {
values := []int{1, 2, 3, 4}
for _, v := range values {
go func(x int) {
fmt.Println(x)
}(v)
}
}
如果此代码没有go
关键字,它将打印1、2、3、4
但它现在不能打印任何代码,为什么
go版本:1.5.2 darwin/amd64简短:在末尾等待,它将打印出来。
更好的选择:通过通道进行通信终止 长:一个围棋程序的寿命和主要goroutine的寿命一样长 当您执行
转到somefunc()
时,它不会立即启动,somefunc()会被安排
在您的情况下,您计划了一些goroutine并退出–调度器没有理由运行其他goroutine。简短:在末尾等待,它将打印。
更好的选择:通过通道进行通信终止 长:一个围棋程序的寿命和主要goroutine的寿命一样长 当您执行
转到somefunc()
时,它不会立即启动,somefunc()会被安排
在您的情况下,您计划了一些goroutine并退出了,而调度器没有理由运行其他goroutine