Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Scala REPL中回显用户输入?_Scala_Read Eval Print Loop - Fatal编程技术网

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

如何在Scala REPL中回显用户输入?,scala,read-eval-print-loop,Scala,Read Eval Print Loop,我正在用Scala教授一门编程入门课。我们从REPL开始。REPL有一个缺陷,当学生输入readLine命令时,他们的输入不会得到响应。我可以建议或提供一些变通方法吗 我在使用Eclipse时没有遇到这种问题,但在我向学生介绍Eclipse之前需要几周时间。使用scala-Xnojline: scala> val l = readLine test l: String = test 但是,这会破坏某些功能,特别是箭头键,因此您无法修改以前的命令 如果可用,您可以使用rlwrap scal

我正在用Scala教授一门编程入门课。我们从REPL开始。REPL有一个缺陷,当学生输入readLine命令时,他们的输入不会得到响应。我可以建议或提供一些变通方法吗


我在使用Eclipse时没有遇到这种问题,但在我向学生介绍Eclipse之前需要几周时间。

使用
scala-Xnojline

scala> val l = readLine
test
l: String = test
但是,这会破坏某些功能,特别是箭头键,因此您无法修改以前的命令

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

完全归功于。

您可以使用电源模式访问REPL的读卡器;它将为您提供一个完整的
阅读行

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>
scala>:电源
**电源用户模式已启用-哔哔声**
**:相位已设置为“typer”**
**scala.tools.nsc.\已导入**
**全局。\定义。\也已导入**
**尝试:帮助、:VAL、电源**
scala>repl.in.readLine(“输入内容:”)
输入:你好,世界
res0:String=hello world
斯卡拉>

Edit:正如@som snytt所指出的,在2.11中,您可以在上面的代码中使用
reader
而不是
repl.in
,这既短又容易记忆。

@som snytt
reader.readLine
由于某种奇怪的原因不能与2.10一起工作。我猜这就是问题所在。谢谢!repl.in.readLine工作正常;reader.readLine没有
在我的Mac电脑上,我得到错误:找不到:值读取器在Windows上,我得到错误:无法在scala.tools.nsc.Global中访问全局类中的值读取器
repl.in.readLine在任何情况下都可能对我的学生更好,因为它强调这仅适用于repl。