登录
首页 >  Golang >  Go问答

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

来源:Golang技术栈

时间:2023-04-07 13:36:11 308浏览 收藏

小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《如何对 Go 中的按键事件做出反应?》,就很适合你,本篇文章讲解的知识点主要包括golang。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

问题内容

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

import (
    "bufio"
    "os"
)

for {
    reader := bufio.NewReader(os.Stdin)
    key, _ := reader.ReadString('\n')
    deferKey(key)
}

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

正确答案

游戏引擎通常实现这种功能。它们通常也与平台无关(通常至少是 Windows、Linux、Mac OS X)。例如尝试Azul3D 的键盘库

逻辑在我的脑海中就像

watcher := keyboard.NewWatcher()
// Query for the map containing information about all keys
status := watcher.States()
left := status[keyboard.ArrowLeft]
if left == keyboard.Down {
    // The arrow to left is being held down
    // Do something!
}

获取当前正在按下的键的列表是一个遍历地图并列出值为 Down 的键的问题。

文中关于golang的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《如何对 Go 中的按键事件做出反应?》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>