Détection des entrées au clavier dans Golang
Lors de la lecture des entrées de l'utilisateur directement à partir du terminal, l'identification des touches spéciales telles que Entrée et Retour arrière présente un défi. Cet article explique comment déterminer le tableau d'octets ou la représentation sous forme de chaîne de ces clés dans Go.
À l'aide de l'indicateur "cbreak", les entrées de l'utilisateur peuvent être lues caractère par caractère. Cependant, les touches spéciales telles que Entrée et Retour arrière n'ont pas de valeurs d'octet évidentes. Pour résoudre ce problème, nous pouvons exploiter des bibliothèques qui fournissent un mécanisme permettant de détecter les pressions sur des touches spécifiques.
Utilisation de Term
Une bibliothèque populaire pour gérer la saisie du terminal est "term". Avec Term, nous pouvons définir une boucle qui interroge les pressions sur les touches. Chaque événement de pression de touche contient des informations sur la touche enfoncée, ce qui facilite l'identification des spécialités.
L'exemple fourni montre comment capturer diverses touches, notamment F1, Entrée et Retour arrière, en utilisant ev.Key et ev. Champs Ch de l’événement keypress. Cela nous permet de gérer de manière conditionnelle différentes entrées dans notre programme.
Utiliser Bufio
Une autre approche consiste à utiliser le package "bufio". Même si cette méthode lit un seul caractère à la fois, les touches spéciales peuvent être difficiles à détecter. Cependant, certaines valeurs ascii peuvent être identifiées pour indiquer les pressions sur les touches. Par exemple, Enter a une valeur ascii de 10, tandis que Backspace est représenté par 8.
En utilisant le package "bufio", nous pouvons définir une boucle pour lire des caractères uniques. En inspectant la valeur ascii, nous pouvons exécuter des actions spécifiques lors de la reconnaissance de clés spéciales.
Implémentation personnalisée
Si les méthodes ci-dessus ne répondent pas à vos besoins, il est possible de créer une implémentation personnalisée. Cela implique d'accéder à l'interface du terminal du système d'exploitation sous-jacent et de décoder les données d'entrée pour identifier des combinaisons de touches uniques.
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!