2016-11-06 19 views
-7

我是Go的新手。我的問題是運行帶或不帶Go的函數有什麼區別。例如在一個.go文件中,我有一個test()函數,當我調用這個函數時,「test()」和「go test()」有什麼區別。Golang有什麼區別可以運行一個功能

+0

阻塞go test("sue")的問題是「什麼是夠程」。看看https://gobyexample.com/goroutines。 – nilsmagnus

+5

如果您是Go的新手,那麼您可以前往https://tour.golang.org進行遊覽,然後遊玩並再次參觀。然後問SO。 – Volker

+0

@nilsmagnus謝謝。 – michael

回答

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")沒有什麼可以完成,因爲它是它自己的獨立功能。

您可以通過將在time.Sleep或命令行輸入與fmt.Scanln(&input)

Go playground

+0

非常感謝! – michael