我是Go的新手。我的问题是运行带或不带Go的功能有什么不同。例如在.go文件中我有一个test()函数,当我调用这个函数时,“test()”和“go test()”的区别是什么。
答案 0 :(得分:1)
test()
会运行。 go test()
将自行异步运行,完全独立于test()
。
如果你有这样的程序:
func main() {
test("bob")
go test("sue")
}
func test(msg string) {
fmt.Printf("hello %v", msg)
}
您只会看到输出
你好鲍勃
因为main
函数执行会一直跳到最后。没有任何东西可以等待go test("sue")
完成,因为它是它自己的独立功能。
您可以使用go test("sue")
time.Sleep
或命令行输入来阻止fmt.Scanln(&input)