Golang在运行或不使用go时运行函数的区别是什么

时间:2016-11-06 18:37:16

标签: go

我是Go的新手。我的问题是运行带或不带Go的功能有什么不同。例如在.go文件中我有一个test()函数,当我调用这个函数时,“test()”和“go test()”的区别是什么。

1 个答案:

答案 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)

Go playground