如何检测 Golang STDIN 输入中的特殊键(Enter、Backspace)
当从 Go 中的 stdin 读取用户输入时,默认行为是捕获所有字符,直到按下行尾字符(例如“enter”键)。为了检测“enter”或“backspace”等特殊键并执行特定操作,我们需要找到一种方法来解释程序中这些键的字节表示。
在提供的原始代码中,它捕获了用户循环输入:
for { input += string(b) }
变量 b 是一个大小为 1 的字节数组,用于从 stdin 一次读取一个字节。为了识别特殊键,我们需要了解这些键如何表示为字节。
例如,“enter”键生成一个字节值 10(换行),而“backspace”键生成一个字节值字节值 127(在 POSIX 系统中)或 8(退格键)。
要检测这些特殊键,我们可以使用更高级的方法:
package main import ( "fmt" "os" "term" ) func main() { err := term.Init() if err != nil { panic(err) } defer term.Close() for { ev := term.PollEvent() switch ev.Type { case term.EventKey: // Check for special keys switch ev.Key { case term.KeyEnter: fmt.Println("Enter pressed") case term.KeyBackspace: fmt.Println("Backspace pressed") } } } }
在此更新的代码中:
通过使用此方法,您现在可以处理“enter”或“backspace”等特殊键,并根据需要执行自定义操作。
以上是如何检测 Golang STDIN 输入中的 Enter 和 Backspace 键?的详细内容。更多信息请关注PHP中文网其他相关文章!