In Go liest die ReadString-Funktion eine Zeichenfolge aus der Standardeingabe und wartet darauf, dass die Eingabetaste gedrückt wird. Beim Erstellen einer REPL-Anwendung (Read-Eval-Print-Loop) ist es jedoch erforderlich, umgehend auf Tastendruckereignisse zu reagieren.
Anstatt sich auf ReadString zu verlassen, sollten Sie die Verwendung von Game-Engines in Betracht ziehen die eine plattformunabhängige Verarbeitung von Tastatureingaben bieten. Eine solche Bibliothek ist die Tastaturbibliothek von Azul3D.
Die Bibliothek bietet einen Tastaturwächter, der den Zustand aller Tasten überwacht. Indem Sie den Beobachter nach der Statuszuordnung abfragen, können Sie feststellen, ob eine bestimmte Taste gedrückt, gedrückt gehalten oder losgelassen wird.
import ( "github.com/azul3d/keyboard" ) func main() { watcher := keyboard.NewWatcher() status := watcher.States() for { left := status[keyboard.ArrowLeft] if left == keyboard.Down { // The arrow left key is being held down. } } }
Dieser Code durchläuft die Statuszuordnung und erkennt alle Tasten, die derzeit gedrückt sind . Anschließend können Sie je nach gedrückter Taste die entsprechenden Aktionen ausführen.
Das obige ist der detaillierte Inhalt vonWie kann ich Tastendrücke in einem Go REPL effizient verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!