什么是scala -i命令行选项应该做什么?

tim*_*day 2 shell debian command-line scala interactive

我发现scala'-i'命令行选项对于运行一些scala代码然后将我转储到交互式shell中非常有用,因此我可以生成/检查它定义的内容.

有一件事让我完全神秘:为什么它加载并运行脚本两次?

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

println("Hello world")
Run Code Online (Sandbox Code Playgroud)

赛跑

scala -i test.scala
Run Code Online (Sandbox Code Playgroud)

生产:

$ 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>
Run Code Online (Sandbox Code Playgroud)

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

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

(FWIW,我和Debian/Lenny一起使用Squeeze的scala包.)

Ran*_*ulz 6

给-i选项的文件的双重加载是Scala 2.7中众所周知的错误.它长期固定在2.8开发中继线上.

RRS