Go REPL でキー入力を効率的に処理するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-28 01:56:13
オリジナル
410 人が閲覧しました

How Can I Handle Keypresses Efficiently in a Go REPL?

Go でのキー押下入力処理

Go では、ReadString 関数は標準入力から文字列を読み取り、Return キーが押されるのを待ちます。ただし、REPL (読み取り-評価-印刷ループ) アプリケーションを構築する場合は、キー押下イベントに迅速に応答する必要があります。

代替アプローチ

ReadString に依存する代わりに、ゲーム エンジンの使用を検討してください。プラットフォームに依存しないキーボード入力処理を提供します。そのようなライブラリの 1 つは、Azul3D のキーボード ライブラリです。

キー押下イベント監視

このライブラリは、すべてのキーの状態を監視するキーボード ウォッチャーを提供します。ウォッチャーにステータス マップを問い合わせることで、特定のキーが押されているか、押し続けられているか、または放されているかを判断できます。

import (
    "github.com/azul3d/keyboard"
)

func main() {
    watcher := keyboard.NewWatcher()
    status := watcher.States()

    for {
        left := status[keyboard.ArrowLeft]
        if left == keyboard.Down {
            // The arrow left key is being held down.
        }
    }
}
ログイン後にコピー

このコードはステータス マップを反復処理し、現在押されているキーを検出します。 。その後、押されたキーに基づいて適切なアクションを実行できます。

以上がGo REPL でキー入力を効率的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート