8

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

我在使用 Eclipse 时没有遇到这个问题,但是我要过几周才能将 Eclipse 介绍给我的学生。

4

2 回答 2

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在上面的代码中,这既更短又更容易记住。

于 2013-08-31T21:21:19.963 回答
2

使用scala -Xnojline

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

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

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

完全归功于这篇文章

于 2013-08-31T18:50:31.767 回答