如何在Scala REPL中回显用户输入?

时间:2013-08-31 18:02:11

标签: scala read-eval-print-loop

我正在使用Scala教授入门编程课程。我们从REPL开始。 REPL有一个错误,当学生输入readLine命令时,他们的输入不会被回显。我可以建议或提供一些解决方法吗?

使用Eclipse时没有这个问题,但是在我向学生介绍Eclipse之前几周。

2 个答案:

答案 0 :(得分:4)

您可以使用电源模式访问REPL的阅读器;它会给你一个完全有效的readLine

scala> :power
** Power User mode enabled - BEEP WHIR GYVE **
** :phase has been set to 'typer'.          **
** scala.tools.nsc._ has been imported      **
** global._, definitions._ also imported    **
** Try  :help, :vals, power.<tab>           **

scala> repl.in.readLine("enter something: ")
enter something: hello world
res0: String = hello world

scala>

修改:正如@ som-snytt指出的那样,在2.11中你可以在上面的代码中使用reader而不是repl.in,这样更短更容易记住

答案 1 :(得分:2)

使用scala -Xnojline

scala> val l = readLine
test
l: String = test

但这确实会破坏某些内容,特别是箭头键,因此您无法修改以前的命令。

如果可用,您可以使用rlwrap scala -Xnojline(也应该在cygwin上提供)来恢复这些功能。

完全归功于this post

相关问题