Heim  >  Artikel  >  Backend-Entwicklung  >  So schließen Sie die Eingabe in Golang

So schließen Sie die Eingabe in Golang

PHPz
PHPzOriginal
2023-04-05 09:11:17874Durchsuche

Golang ist eine beliebte Programmiersprache, die viele nützliche integrierte Funktionen für den Umgang mit Eingabe und Ausgabe bietet. In einigen Fällen möchten wir möglicherweise Benutzereingaben in unser Programm deaktivieren. In diesem Artikel wird erläutert, wie Sie die Eingabe in Golang deaktivieren.

Warum sollten wir den Eingang ausschalten?

Bei einigen Anwendungen müssen wir die Richtigkeit und Sicherheit der Eingaben sicherstellen. Geben Sie beispielsweise vertrauliche Informationen ein oder geben Sie Daten ein, die sich auf die Programmlogik auswirken. In diesen Fällen möchten wir in der Lage sein, die Eingabequellen des Programms einzuschränken und die Richtigkeit der Eingabe sicherzustellen.

Wie schließe ich die Eingabe in Golang?

In Golang gibt es mehrere Möglichkeiten, Eingaben zu schließen. Zwei dieser Methoden werden im Folgenden vorgestellt.

1. Verwenden Sie die Funktion os.Stdin.Close()

In Golang ist os.Stdin eine sehr nützliche integrierte Variable, die den Standardeingabestream des Programms darstellt. Das Schließen dieser Variablen verhindert, dass das Programm Daten aus dem Standardeingabestream liest.

Verwenden Sie die Funktion os.Stdin.Close(), um die Standardeingabe des Programms zu schließen.

package main

import (
    "fmt"
    "os"
)

func main() {
    fmt.Println("input your name:")
    var name string
    _, err := fmt.Scanln(&name)
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println("Hello", name)

    os.Stdin.Close()//关闭标准输入
    fmt.Scanln()//此时将不能再输入
}

2. Verwenden Sie das io.EOF-Flag in der bufio.Reader-Struktur

Die bufio.Reader-Struktur in Golang bietet auch eine Methode zum Schließen der Eingabe. Konkret können wir beim Lesen der Eingabe prüfen, ob die Eingabe beendet ist. Wenn die Eingabe beendet ist, können wir die Eingabe schließen und die weitere Eingabe von Daten verbieten.

package main

import (
    "bufio"
    "fmt"
    "os"
)

func main() {
    fmt.Println("input your name:")
    var name string
    reader := bufio.NewReader(os.Stdin)
    for {
        line, err := reader.ReadString('\n')
        if line == "\n" {
            fmt.Println("Name:", name)
            break
        }
        if err == nil {
            name += line
        } else if err.Error() == "EOF" {
            fmt.Println("Name:", name)
            break
        }
    }
    reader = nil
}

Im obigen Code verwenden wir die Funktion bufio.NewReader(), um ein bufio.Reader-Objekt zu erstellen und verwenden dessen ReadString()-Methode, um die Eingabe zu lesen.

Nach jedem Lesevorgang prüfen wir, ob der Fehler io.EOF ist. Wenn dies der Fall ist, bedeutet dies, dass die Eingabe beendet ist und wir die Eingabe schließen können.

Zusammenfassung

Die oben genannten sind zwei Möglichkeiten, die Golang-Eingabe zu schließen. In einigen Fällen müssen wir möglicherweise Benutzereingaben deaktivieren. Der Einsatz dieser Methoden kann uns dabei helfen, die Korrektheit und Sicherheit des Programms sicherzustellen.

Natürlich ist das Ausschalten der Eingabe nicht immer notwendig. Die spezifische Situation muss entsprechend dem Anwendungsszenario bestimmt werden.

Das obige ist der detaillierte Inhalt vonSo schließen Sie die Eingabe in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn