我发现scala'-i'命令行选项对于运行一些scala代码非常有用,然后将我转储到交互式shell中,这样我就可以生成/检查它定义的内容。
但有一件事让我完全神秘:为什么它会加载并运行两次脚本?
例如,给定文件test.scala包含cannonical
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,我正在使用Squeeze的scala软件包访问Debian / Lenny。)
答案 0 :(得分:6)
给予-i选项的文件的双重加载是Scala 2.7中众所周知的错误。它长期固定在2.8开发中心。
RRS
答案 1 :(得分:0)
scala manual page表示-i选项“请求预先加载文件。它只对交互式shell有意义”。似乎不是贝壳的人不应该使用它。