我正在使用 Scala 教授编程入门课程。我们从 REPL 开始。REPL 有一个错误,即当学生输入 readLine 命令时,他们的输入不会被回显。我可以建议或提供一些解决方法吗?
我在使用 Eclipse 时没有遇到这个问题,但是我要过几周才能将 Eclipse 介绍给我的学生。
我正在使用 Scala 教授编程入门课程。我们从 REPL 开始。REPL 有一个错误,即当学生输入 readLine 命令时,他们的输入不会被回显。我可以建议或提供一些解决方法吗?
我在使用 Eclipse 时没有遇到这个问题,但是我要过几周才能将 Eclipse 介绍给我的学生。
您可以使用电源模式来访问 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
在上面的代码中,这既更短又更容易记住。
使用scala -Xnojline
:
scala> val l = readLine
test
l: String = test
但是,这确实会破坏某些内容,尤其是箭头键,因此您无法修改以前的命令。
如果可用,您可以使用rlwrap scala -Xnojline
(也应该在 cygwin 上可用)来恢复这些功能。
完全归功于这篇文章。