【问题标题】:What is scala -i command-line option supposed to do?scala -i 命令行选项应该做什么?
【发布时间】:2010-12-13 14:36:48
【问题描述】:

我发现 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 包。)

【问题讨论】:

    标签: shell command-line scala debian interactive


    【解决方案1】:

    scala manual page 表示 -i 选项“请求预加载文件。它仅对交互式 shell 有意义”。好像不是shell的人不应该用它。

    【讨论】:

      【解决方案2】:

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

      RRS

      【讨论】:

      • 谢谢!这比预期的行为更有意义!
      猜你喜欢
      • 2012-11-21
      • 1970-01-01
      • 1970-01-01
      • 2019-03-30
      • 2016-06-03
      • 2015-05-21
      • 2017-08-20
      • 2011-02-23
      • 1970-01-01
      相关资源
      最近更新 更多