Golang las aus Stdin

Golang las aus Stdin
In den meisten Programmiersprachen können Sie Eingaben von der Konsole lesen und in eine Variable speichern. Go -Programmierung wird in dieser Hinsicht nicht zurückgelassen. In diesem Artikel erfahren wir, wie Sie Eingaben von der Konsole in Go -Programmierung lesen können.

Erforderliche Importe

Um Eingaben aus der Konsole zu lesen, müssen wir einige Pakete importieren. Das erste ist das Bufio -Paket, das FMT -Paket und das Betriebssystempaket.

Mit dem Bufio -Paket können Sie Zeichen aus dem Stdin gleichzeitig lesen. Das FMT-Paket wird verwendet, um E/A-Operationen zu verarbeiten, und das Betriebssystem bietet Systemfunktionen auf niedriger Ebene.

Der folgende Snippet importiert alle erforderlichen Pakete:

importieren (
"Bufio"
"fmt"
"OS"
)

Golang las Charakter

Lassen Sie uns sehen, wie Sie ein einzelnes Unicode -Zeichen aus dem Stdin in der Go -Sprache lesen können. Betrachten Sie den folgenden Code vor:

Paket Main
importieren (
"Bufio"
"fmt"
"Protokoll"
"OS"
)
func main ()
fmt.Println ("ein Zeichen eingeben>")
Leser: = bufio.Newreader (Betriebssystem.Stdin)
char, _, err: = reader.Readrune ()
Wenn er irrt != nil
Protokoll.Tödlich (arr)

fmt.Printf ("unicode char: %u \ n", char)

Im vorherigen Beispiel erstellen wir einen neuen Leser aus dem Bufio -Paket und bestehen das Betriebssystem.Stdin als Parameter.

Wir lesen dann den Charakter und den Fehler vom Leser. Beachten Sie, dass wir die Methode ReadRune () verwenden.

Der vorherige Code sollte eine Ausgabe wie gezeigt zurückgeben:

Geben Sie ein Zeichen ein>
A
Unicode char: u+0041

Die obige Ausgabe zeigt den Unicode -Codepunkt für das Zeichen „a.”

Golang lesen Multi-Line

Wenn Sie mehrere Zeilen aus der Konsole lesen möchten, können Sie die ReadString () -Methode anstelle von Readrune verwenden, wie oben gezeigt.

Ein Code -Beispiel wird unten angegeben:

Paket Main
importieren (
"Bufio"
"fmt"
"Protokoll"
"OS"
)
func main ()
fmt.Println ("eine Zeichenfolge eingeben")
Leser: = bufio.Newreader (Betriebssystem.Stdin)
STR, ERR: = LESER.ReadString ('\ n')
Wenn er irrt != nil
Protokoll.Tödlich (arr)

fmt.Printf ("%s", str)

In diesem Beispiel wird der Leser die Eingabe des Benutzers kontinuierlich lesen, bis er auf den angegebenen Trennzeichen trifft. In unserem Beispiel, wenn der Leser auf einen neuen Charakter trifft, hört er auf, das Lesen zu lesen.

Wenn wir den Code ausführen, sollten wir eine Ausgabe als:

Geben Sie eine Zeichenfolge ein

Hallo Welt aus Stdin

Golang -Scanner

Eine andere Methode, mit der wir Eingaben von STDIN akzeptieren können, ist die Scannermethode. Die NewsCanner () -Methode ist beim Lesen einer Datei sehr nützlich. Wir können es jedoch verwenden, um aus Stdin zu lesen.

Ein Codebeispiel ist unten angezeigt:

Paket Main
importieren (
"Bufio"
"fmt"
"OS"
)
func main ()
Scanner: = bufio.Newscanner ((Betriebssystem.Stdin))
Eingabe: = make ([] String, 0)
für
fmt.Println ("Typ hier:")
Scanner.Scan()
txt: = scanner.Text()
input = append (Eingabe, txt)
brechen

fmt.Println (Eingabe)

Der vorherige Code liest die Eingabe des Benutzer. Sie können den vorherigen Code erweitern, um die Eingabe kontinuierlich zu lesen und zu beenden, sobald kein Wert bereitgestellt wird.

Abschluss

Wie aus diesem Handbuch hervorgeht, bietet uns die Go -Programmierung verschiedene Möglichkeiten, Eingaben aus dem Stdin zu lesen. Sie können jede Methode auswählen, die Ihren Anforderungen entspricht. Wir hoffen, Sie haben diesen Artikel hilfreich gefunden. Weitere Tipps und Tutorials finden Sie in anderen Linux -Hinweisartikeln.