2009-11-05 58 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選項」的請求。這只是有意義的互動炮彈」。看起來不是貝殼的人不應該使用它。