Golang でのキーボード入力の検出
端末からユーザー入力を直接読み取る場合、Enter や Backspace などの特殊キーを識別するのが困難になります。この記事では、Go でこれらのキーのバイト配列または文字列表現を決定する方法について説明します。
「cbreak」フラグを使用すると、ユーザー入力を 1 文字ずつ読み取ることができます。ただし、Enter キーや Backspace キーなどの特殊キーには明確なバイト値がありません。これを解決するには、特定のキーの押下を検出するメカニズムを提供するライブラリを利用できます。
Term の使用
端末入力を処理するための一般的なライブラリの 1 つは、「term」です。 Term を使用すると、キー押下をポーリングするループを定義できます。各 keypress イベントには、押されたキーに関する情報が含まれているため、特殊なものを簡単に識別できます。
ここで提供される例は、ev.Key と ev.Key を使用して、F1、Enter、Backspace などのさまざまなキーをキャプチャする方法を示しています。キー押下イベントの Ch フィールド。これにより、プログラム内でさまざまな入力を条件付きで処理できるようになります。
Bufio の使用
もう 1 つのアプローチは、「bufio」パッケージを使用することです。この方法では一度に 1 文字を読み取りますが、特殊キーの検出が難しい場合があります。ただし、特定の ASCII 値はキーの押下を示すものとして識別できます。たとえば、Enter の ASCII 値は 10 ですが、Backspace の値は 8 で表されます。
「bufio」パッケージを使用すると、単一の文字を読み取るループを定義できます。 ASCII 値を検査することで、特殊キーを認識したときに特定のアクションを実行できます。
カスタム実装
上記の方法がニーズに合わない場合は、次のことが可能です。カスタム実装を作成します。これには、基礎となるオペレーティング システムの端末インターフェイスにアクセスし、入力データをデコードして一意のキーの組み合わせを識別することが含まれます。
以上がGolang で特殊なキーボード キー (Enter、Backspace など) を検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。