2013-07-17 6 views
15

Wenn ich jemals ein Go Console-Programm ausführe, das nur in einer Sekunde ausgeführt wird, habe ich auf Google, der Go-Website und Stackoverflow gesucht.Wie füge ich einem Go-Programm eine Pause hinzu?

import (
    "fmt" 
) 

func main() { 
    fmt.Println() 
} 

Es schließt sofort, wenn ich es ausführe.

EDIT 2 Ich wollte eigentlich das Programm permanent angehalten bleiben, bis der Benutzer eine Taste

Antwort

36

drückt Sie können das Programm für eine beliebig lange Zeit anhalten, indem time.Sleep() verwenden. Zum Beispiel:

package main 
import ("fmt" 
     "time" 
     ) 

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

die Dauer erhöhen willkürlich können Sie tun:

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

EDIT: Da die OP zusätzliche Einschränkungen auf die Frage hinzugefügt, um die Antwort oben nicht mehr paßt die Rechnung. Sie können eine Pause machen, bis die Taste Enter gedrückt wird, indem Sie einen neuen Pufferleser erstellen, der darauf wartet, das Zeichen Newline (\n) zu lesen.

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

Aber dies nur für ein paar Sekunden dauern, ich möchte das Programm beenden, wenn eine Taste gedrückt wird – Vaderman2782

+1

@Vade rman2782 Das hast du in der Frage nicht erwähnt. Wie Mike hätte wissen müssen? – Mostafa

+0

Oh Entschuldigung. lass mich das bearbeiten ... – Vaderman2782

2

Die einfachste eine andere Art und Weise mit minimalen Importe verwenden diese zwei Linien:

var input string 
fmt.Scanln(&input) 

diese Zeile am Ende des Programms Hinzufügen, pausiert den Bildschirm, bis der Benutzer drücken Sie die Enter-Taste, zum Beispiel:

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 der einzelne Kommentar im Code ist die ganze Erklärung, die benötigt wird. Was ich fragwürdiger finde, ist, dass dies nur eine reduzierte Version von Vas 'existierender Antwort ohne Angabe von Attribution ist. – Gimby

+0

Sory. Ich konnte nicht antworten, da der Ruf <50 ist und ich Englisch nicht kann) Kommentar ... Ok, aber gibt es viel Kommentar in den verbleibenden Beispielen, wo sie definitiv benötigt werden? Ich benutze Translater. – mukexa

Verwandte Themen