我正在寻找Scala中具有与getch类似功能的函数。在使用控制台时,我希望我的程序根据用户输入的字符显示信息(例如,如果我显示文本,则按n将显示下一页,而p显示前一页)。现在我正在使用readLine或readChar,但是他们要求用户在每次输入后按Enter键,有点烦人。另外,在Eclipse插件的解释器中,显示了输入字符,尽管我猜这可能是不可避免的。
答案 0 :(得分:7)
scala.Console.readChar
,代表当前的Scala版本,Predef.getChar
是最直接的方式。
scala> readChar
res0: Char = !
更新
这次没有讨厌的Enter
:
scala> Console.in.read.toChar
res0: Char = !
答案 1 :(得分:2)
您可以尝试使用 1.6 中添加的Java Console。这是REPL会议:
scala> val r = System.console().reader()
r: java.io.Reader = java.io.Console$LineReader@1d97efc
scala> r.read.toChar
res8: Char = t
在repl会话期间,我在执行第二个表达式后按 t 键
reed
方法不需要输入,并在您按键后立即返回。
答案 2 :(得分:2)
使用StdIn lib:
StdIn.readChar()