在 Go 中,ReadString 函数从标准输入读取字符串,等待按下返回键。然而,在构建 REPL(读取-评估-打印循环)应用程序时,需要及时响应按键事件。
不要依赖 ReadString,请考虑使用游戏引擎提供与平台无关的键盘输入处理。 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中文网其他相关文章!