Heim >Backend-Entwicklung >Golang >Wie erkennt man die Eingabe- und Rücktaste in der Golang-STDIN-Eingabe?

Wie erkennt man die Eingabe- und Rücktaste in der Golang-STDIN-Eingabe?

DDD
DDDOriginal
2024-11-26 03:21:13275Durchsuche

How to Detect Enter and Backspace Keys in Golang STDIN Input?

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:

  • Wir verwenden den Begriff Bibliothek, um Terminalereignisse zu verarbeiten.
  • Wir überprüfen den ev.Type, um festzustellen, ob eine Taste wurde gedrückt.
  • Wir überprüfen den ev.Key, um festzustellen, welche Taste gedrückt wurde.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn