2013-07-17 66 views
15

當我執行一個Go控制檯程序時,它只執行一秒鐘,我一直在Google,Go網站和Stackoverflow上查看。如何添加暫停到Go程序?

import (
    "fmt" 
) 

func main() { 
    fmt.Println() 
} 

它會立即關閉,當我執行它。

EDIT 2 其實我想要的程序,直到用戶按下一個按鈕

回答

36

您可以通過使用time.Sleep()暫停節目的任意長的時間長期居住暫停。例如:

package main 
import ("fmt" 
     "time" 
     ) 

func main() { 
    fmt.Println("Hello world!") 
    duration := time.Second 
    time.Sleep(duration) 
} 

爲了增加持續時間隨意,你可以這樣做:

duration := time.Duration(10)*time.Second // Pause for 10 seconds 

編輯:由於OP增加了額外的約束,這個問題的答案上面不再符合本條例草案。您可以暫停,直到輸入鍵通過創建一個等待讀取換行符(\n)字符的新緩衝讀取器按下。

package main 
import ("fmt" 
     "bufio" 
     "os" 
     ) 

func main() { 
    fmt.Println("Hello world!") 
    fmt.Print("Press 'Enter' to continue...") 
    bufio.NewReader(os.Stdin).ReadBytes('\n') 
} 
+0

但這僅僅持續了幾秒鐘,我要當一個鍵被按下 – Vaderman2782

+1

@Vade程序退出rman2782你在問題中沒有提到這一點。邁克應該如何知道? – Mostafa

+0

對不起。讓我編輯它...... – Vaderman2782

2

最簡單的最小進口的另一種方式使用2線:

var input string 
fmt.Scanln(&input) 

添加這行代碼在程序結束時,將暫停屏幕,直到用戶按Enter鍵,例如:

package main 

import "fmt" 

func main() { 
    fmt.Println("Press the Enter Key to terminate the console screen!") 
    var input string 
    fmt.Scanln(&input) 
} 
0
package main 

import "fmt" 

func main() { 
    fmt.Println("Press the Enter Key to terminate the console screen!") 
    fmt.Scanln() // wait for Enter Key 
} 
+0

@BalagurunathanMarimuthu代碼中的單個註釋是所有需要的解釋。我發現更令人質疑的是,這只是Vas現有答案的簡化版本而沒有給出歸因。 – Gimby

+0

Sory。我無法回答,因爲聲譽<50,我不知道英語) 評論...好的,但是在其他例子中,他們肯定需要的地方有很多評論嗎? 我使用translater。 – mukexa