我正在使用Scala教授入门编程课程。我们从REPL开始。 REPL有一个错误,当学生输入readLine命令时,他们的输入不会被回显。我可以建议或提供一些解决方法吗?
使用Eclipse时没有这个问题,但是在我向学生介绍Eclipse之前几周。
答案 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。