Tastatureingaben in Golang erkennen
Beim Lesen von Benutzereingaben direkt vom Terminal stellt die Identifizierung von Sondertasten wie Enter und Backspace eine Herausforderung dar. In diesem Artikel wird erläutert, wie Sie die Byte-Array- oder String-Darstellung dieser Schlüssel in Go ermitteln.
Mithilfe des „cbreak“-Flags können Benutzereingaben Zeichen für Zeichen gelesen werden. Sondertasten wie Enter und Backspace haben jedoch keine offensichtlichen Bytewerte. Um dieses Problem zu lösen, können wir Bibliotheken nutzen, die einen Mechanismus zur Erkennung bestimmter Tastendrücke bereitstellen.
Term verwenden
Eine beliebte Bibliothek zur Verarbeitung von Terminaleingaben ist „Term“. Mit Term können wir eine Schleife definieren, die Tastendrücke abfragt. Jedes Tastendruckereignis enthält Informationen über die gedrückte Taste, sodass Sonderfunktionen leicht identifiziert werden können.
Das bereitgestellte Beispiel zeigt, wie verschiedene Tasten, einschließlich F1, Eingabetaste und Rücktaste, mithilfe von ev.Key und ev erfasst werden. CH-Felder des Tastendruckereignisses. Dadurch können wir verschiedene Eingaben in unserem Programm bedingt verarbeiten.
Verwendung von Bufio
Ein anderer Ansatz ist die Verwendung des Pakets „bufio“. Während diese Methode jeweils ein einzelnes Zeichen liest, kann es schwierig sein, Sondertasten zu erkennen. Allerdings können bestimmte ASCII-Werte identifiziert werden, um Tastendrücke anzuzeigen. Enter hat beispielsweise einen ASCII-Wert von 10, während Backspace durch 8 dargestellt wird.
Mit dem Paket „bufio“ können wir eine Schleife definieren, um einzelne Zeichen zu lesen. Durch die Überprüfung des ASCII-Werts können wir bestimmte Aktionen ausführen, wenn Sonderschlüssel erkannt werden.
Benutzerdefinierte Implementierung
Wenn die oben genannten Methoden nicht Ihren Anforderungen entsprechen, ist dies möglich Erstellen Sie eine benutzerdefinierte Implementierung. Dazu gehört der Zugriff auf die Terminalschnittstelle des zugrunde liegenden Betriebssystems und die Dekodierung der Eingabedaten, um eindeutige Tastenkombinationen zu identifizieren.
Das obige ist der detaillierte Inhalt vonWie kann ich spezielle Tastaturtasten (Eingabetaste, Rücktaste usw.) in Golang erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!