2

我发现 scala '-i' 命令行选项对于运行一些 scala 代码然后将我转储到交互式 shell 中非常有用,这样我就可以刺激/检查它定义的东西。

一件让我完全困惑的事情:为什么它会加载和运行脚本两次?

例如,给定文件 test.scala 包含规范

println("Hello world")

跑步

scala -i test.scala

产生:

$ scala -i test.scala
Loading test.scala...
Hello world

Loading test.scala...
Hello world

Welcome to Scala version 2.7.5final (Java HotSpot(TM) Client VM, Java 1.6.0_12).
Type in expressions to have them evaluated.
Type :help for more information.

scala>

显然,运行两次并不太令人头疼,但是对于需要一段时间才能运行的脚本来说,这很烦人(我正在使用 [Project Euler]((https://projecteuler.net)问题来学习 scala)

我假设我以某种方式误解了 -i 选项的意图或用法......如何让我的脚本文件只运行一次?

(FWIW,我在 Debian/Lenny 上使用 Squeeze 的 scala 包。)

4

2 回答 2

6

赋予 -i 选项的文件双重加载是 Scala 2.7 中的一个众所周知的错误。它长期固定在 2.8 开发主干中。

RRS

于 2009-11-05T22:10:30.190 回答
0

scala 手册页说 -i 选项“请求预加载文件。它仅对交互式 shell 有意义”。似乎不是贝壳的人不应该使用它。

于 2009-11-05T21:17:41.803 回答