2009-11-05 25 views
2

我发现scala'-i'命令行选项对于运行一些scala代码非常有用,然后将我倾倒到一个交互式shell中,这样我就可以生成/检查它定义的东西。什么是scala -i命令行选项应该做的?

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

例如,含有cannonical

println("Hello world") 

运行

scala -i test.scala 

给定的文件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> 

显然运行两次得不是太多的头痛,但它很烦人脚本需要一段时间运行(我使用[欧拉项目]((https://projecteuler.net)学习scala的问题)

我假设我误解了-i选项的意图或用法......我怎么让我的脚本文件只运行一次?

(FWIW,我在Debian /莱尼从挤压阶包)。

回答

6

给予-i选项的文件的双重加载是Scala 2.7中一个众所周知的bug。它在2.8发展主干中长期固定下来。

RRS

+0

谢谢!这比预期的行为更有意义! – timday 2009-11-05 22:39:48

0

scala manual page说,一个文件预先装载-i选项”的请求。这只是有意义的互动炮弹”。看起来不是贝壳的人不应该使用它。