So erkennen Sie Sondertasten (Eingabetaste, Rücktaste) in der Golang-STDIN-Eingabe
Beim Lesen von Benutzereingaben von stdin in Go ist das Standardverhalten besteht darin, alle Zeichen zu erfassen, bis ein Zeilenendezeichen (z. B. die Eingabetaste) gedrückt wird. Um Sondertasten wie „Enter“ oder „Backspace“ zu erkennen und bestimmte Aktionen auszuführen, müssen wir einen Weg finden, die Byte-Darstellung dieser Tasten in unserem Programm zu interpretieren.
Im bereitgestellten Originalcode, der Benutzer erfasst Eingabe in einer Schleife:
for { input += string(b) }
Die Variable b ist ein Byte-Array der Größe 1, das verwendet wird, um jeweils ein einzelnes Byte aus stdin zu lesen. Um spezielle Schlüssel zu identifizieren, müssen wir verstehen, wie diese Schlüssel als Bytes dargestellt werden.
Zum Beispiel generiert die „Enter“-Taste einen Bytewert von 10 (Zeilenvorschub), während die „Backspace“-Taste einen generiert Bytewert von 127 (in POSIX-Systemen) oder 8 (Rücktaste).
Um diese Sonderschlüssel zu erkennen, können wir einen fortgeschritteneren verwenden Ansatz:
package main import ( "fmt" "os" "term" ) func main() { err := term.Init() if err != nil { panic(err) } defer term.Close() for { ev := term.PollEvent() switch ev.Type { case term.EventKey: // Check for special keys switch ev.Key { case term.KeyEnter: fmt.Println("Enter pressed") case term.KeyBackspace: fmt.Println("Backspace pressed") } } } }
In diesem aktualisierten Code:
Durch die Verwendung Mit diesem Ansatz können Sie nun Sondertasten wie „Enter“ oder „Rücktaste“ bedienen und bei Bedarf benutzerdefinierte Aktionen ausführen.
Das obige ist der detaillierte Inhalt vonWie erkennt man die Eingabe- und Rücktaste in der Golang-STDIN-Eingabe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!