我正在运行Scala2.9.2 REPL,如果我复制&粘贴以下方法:
def isPrime(num: Int): Boolean = {
val ceiling = math.sqrt(num.toDouble).toInt
(2 to ceiling) forall (x => num % x != 0)
}
从带有源代码的文件(工作良好)到交互式解释器。我得到这个例外:
java.lang.IllegalArgumentException: != 0): event not found
at jline.console.ConsoleReader.expandEvents(ConsoleReader.java:426)
...
问题是!
字符(没有感叹号的方法效果很好)。
有什么方法可以使该方法在REPL中工作吗?
您可能错过了这个实例:
https://issues.scala-lang.org/browse/SI-7650
但paulp修复程序并不向后兼容。
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> $r.r.in.asInstanceOf[scala.tools.nsc.interpreter.JLineReader].consoleReader.setExpandEvents(false)
scala> 1 != 2
res1: Boolean = true
与在2.11:上崩溃相反
scala> 1 != 2
java.lang.IllegalArgumentException: != 2: event not found
我在最初的安装中无法解决这个问题,但安装Scala的新版本有所帮助。也许,这是Fedora 17 rpm Scala包的问题。
- 相关错误
- 带有"损坏"REPL的rpm包