如何对 Go 中的按键事件做出反应?

我在 Go 中有一个 REPL 应用程序,它应该对键盘按下事件做出反应(每个按键按下的不同动作),但ReadString希望在阅读之前按下返回键os.Stdin:


import (

    "bufio"

    "os"

)


for {

    reader := bufio.NewReader(os.Stdin)

    key, _ := reader.ReadString('\n')

    deferKey(key)

}

如何对 Go 中的按键事件做出反应?


哔哔one
浏览 169回答 2
2回答

翻阅古今

游戏引擎通常实现这种功能。它们通常也几乎与平台无关(通常至少是 Windows、Linux、Mac OS X)。尝试例如Azul3D 的键盘库。逻辑是在我的头顶像watcher := keyboard.NewWatcher()// Query for the map containing information about all keysstatus := watcher.States()left := status[keyboard.ArrowLeft]if left == keyboard.Down {    // The arrow to left is being held down    // Do something!}获取当前按下的键的列表是迭代映射并列出 value 为 Down 的键的问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go