假设我有以下代码:
require 'curses'
Curses.init_screen
loop {
ch = Curses.getch
case ch
when Curses::KEY_BACKSPACE
Curses.addstr('Backspace \n')
else
Curses.addstr("Key: #{ch} \n")
end
}
Curses.close_screen
当我按退格键时,我得到以下输出:
Key: 8
预期产出:
Backspace
为什么呢?我究竟做错了什么?我该如何解决?
提前致谢。
答案 0 :(得分:2)
你没有做错任何事。问题是KEY_BACKSPACE的定义,以及终端实际返回的内容......基本上这是一个历史性的混乱。
只需检查\b
(或8),而不是KEY_BACKSPACE。 (在实践中,我不确定你曾获得KEY_BACKSPACE的返回值,但检查它是无害的。)