几天前我开始学习 Go 语言。当我试图开始编写一些有趣的代码时,我被一种奇怪的行为所困扰。
package main
import "fmt"
func recv(value int) {
if value < 0 {
return
}
fmt.Println(value)
go recv(value-1)
}
func main() {
recv(10)
}
当我运行上面的代码时,只10
打印出来。当我go
在调用 to 之前删除torecv
时,会打印出来。我相信我在这里滥用了 goroutine,但我不明白为什么它无法以这种方式启动 goroutine。10
0