package main
import "fmt"
import "runtime"
func main() {
fmt.Println("1")
go fmt.Println(do())
fmt.Println("2")
runtime.Goexit()
}
func do() string {
for{}
return "sssss"
}
为什么2没有打印,go fmt.Println() 时候发生了什么?
有疑问加站长微信联系(非本文作者)

你这里 do 永远不会返回啊,而 go fmt.Println(do()) 是在开启 goroutine 之前,先执行了 do,所以,后面的代码永远不执行
都写了死循环了,你还想让它往下执行?
一楼说的对,
go func() { fmt.Println(do()) } ()
这样就可以了明白了,谢谢。