Maison >développement back-end >Golang >Comment puis-je lire les touches individuelles du clavier en Go sans attendre le retour ?
La gestion de la saisie au clavier dans Go pose un défi unique car la fonction ReadString standard nécessite d'appuyer sur une touche de retour avant de lire la saisie. Pour surmonter cette limitation, des approches alternatives sont nécessaires pour capturer les événements de frappe individuellement.
Une solution prometteuse réside dans l'exploitation des bibliothèques de moteurs de jeu, telles que la bibliothèque de clavier d'Azul3D. Les moteurs de jeu fournissent souvent une gestion des entrées indépendante de la plate-forme, vous permettant d'enregistrer des rappels pour diverses frappes.
Par exemple, à l'aide de la bibliothèque de claviers, vous pouvez créer un observateur qui surveille l'état de toutes les touches :
watcher := keyboard.NewWatcher()
Par la suite, vous pouvez interroger l'observateur pour obtenir l'état d'une touche spécifique, comme la flèche gauche clé :
status := watcher.States() left := status[keyboard.ArrowLeft]
Si la touche est enfoncée, l'état sera défini sur "Down":
if left == keyboard.Down { // The arrow to left is being held down // Do something! }
En parcourant la carte renvoyée par l'observateur, vous pouvez identifiez toutes les touches actuellement enfoncées et répondez en conséquence.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!