我正在教授一门关于Scala编程的入门课程,我们从REPL(交互式解释器)开始学习。不过REPL存在一个问题,当学生输入readLine命令时,他们的输入内容不会被回显。我能提供或建议一些解决方法吗?
在使用Eclipse的过程中,我并没有遇到这个问题,但是在几周后我才会向我的学生介绍Eclipse。
我正在教授一门关于Scala编程的入门课程,我们从REPL(交互式解释器)开始学习。不过REPL存在一个问题,当学生输入readLine命令时,他们的输入内容不会被回显。我能提供或建议一些解决方法吗?
在使用Eclipse的过程中,我并没有遇到这个问题,但是在几周后我才会向我的学生介绍Eclipse。
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
,这既更短也更易记。
使用 scala -Xnojline
命令:
scala> val l = readLine
test
l: String = test
这种方法会破坏一些功能,尤其是箭头键,因此您无法修改先前的命令。
如果可用,可以使用rlwrap scala -Xnojline
(在cygwin上也应该可用)来恢复这些功能。
全文感谢这篇文章。
reader.readLine
在2.10版本中由于某种奇怪的原因无法工作。我猜这就是问题所在。 - gourlaysama