Golang STDIN 入力で特殊キー (Enter、Backspace) を検出する方法
Go で標準入力からユーザー入力を読み取るときのデフォルトの動作行末文字 (「Enter」キーなど) が押されるまで、すべての文字をキャプチャすることです。 「Enter」や「Backspace」などの特別なキーを検出して特定のアクションを実行するには、プログラム内でこれらのキーのバイト表現を解釈する方法を見つける必要があります。
提供された元のコードでは、ユーザーをキャプチャします。ループ内の入力:
for { input += string(b) }
変数 b は、標準入力から一度に 1 バイトを読み取るために使用されるサイズ 1 のバイト配列です。特別なキーを識別するには、これらのキーがバイトとしてどのように表されるかを理解する必要があります。
たとえば、「enter」キーはバイト値 10 (改行) を生成し、「backspace」キーはバイト値 10 (改行) を生成します。バイト値 127 (POSIX システムの場合)、または 8 (バックスペース)。
これらの特殊キーを検出するには、より高度なキーを使用できます。アプローチ:
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") } } } }
この更新されたコードでは:
このアプローチを使用すると、「Enter」や「Backspace」などの特殊キーを処理し、必要に応じてカスタム アクションを実行できるようになります。
以上がGolang STDIN 入力で Enter キーと Backspace キーを検出する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。