Scala中是否有等效的getch()?

我正在寻找Scala中具有与getch类似function的函数。 在使用控制台时,我想根据用户输入的字符显示我的程序显示信息(例如,如果我显示文本,点击n将显示下一页,而p显示前一页)。 现在我正在使用readLine或readChar,但它们要求用户在每次输入后按Enter键,有点烦人。 另外,在Eclipse插件的解释器中,显示了输入字符,尽管我猜这可能是不可避免的。

scala.Console.readChar ,作为Predef.getChar当前版本的Scala中的Predef.getChar是最直接的方式。

 scala> readChar res0: Char = ! 

UPDATE

这次没有讨厌的Enter

 scala> Console.in.read.toChar res0: Char = ! 

您可以尝试使用1.6中添加的Java 控制台 。 这是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方法不需要输入并在按下键后立即返回。

使用StdIn lib:

  StdIn.readChar()