在Eclipse中创建Scala脚本文件

在Eclipse中创建Scala脚本文件,eclipse,scala,scripting,Eclipse,Scala,Scripting,我在玩Scala。我需要的只是一堆函数定义,但在Eclipse中,我只能创建.scala文件,其中函数def必须位于对象或类中 但是我在网上看到一个Scala脚本,它不使用对象包装所有函数 当然,我可以使用对象包装所有函数,但我只是想知道是否需要它。谢谢 据我所知,完全在范围之外编写函数或变量是不可能的。也就是说,可以在类/对象定义之外编写它们。你只需要把它们包起来。发生的事情基本上是,不是将函数/变量绑定到给定的类或对象,而是将其绑定到包。例如: package test package ob

我在玩Scala。我需要的只是一堆函数定义,但在Eclipse中,我只能创建
.scala
文件,其中函数
def
必须位于对象或类中

但是我在网上看到一个Scala脚本,它不使用对象包装所有函数


当然,我可以使用对象包装所有函数,但我只是想知道是否需要它。谢谢

据我所知,完全在范围之外编写函数或变量是不可能的。也就是说,可以在类/对象定义之外编写它们。你只需要把它们包起来。发生的事情基本上是,不是将函数/变量绑定到给定的类或对象,而是将其绑定到包。例如:

package test
package object inside {
  def hello = println("Hello from outer space!")
  class Foo {
    hello // call the function from the package
  }
}
现在,当您构建Foo时,应该会打印“Hello from exterspace!”


在不完全了解我所说的内容的情况下,我可以想象您上面提到的脚本版本可以工作,因为脚本是在某种环境中运行的。因此,想象一下某个类加载脚本,然后将其包装到一个对象中并运行它。这意味着一种类似于上面的情况:函数仍然“属于”某个地方。

是的,在Eclipse中,您需要将所有内容包装在一个对象或类中

您可以在Eclipse中编辑Scala脚本,只要您将代码包装在对象中并避免错误。只需使用
scala-i scriptName.scala-e“Main.Main(args)”
运行脚本(前提是您的计算机上有scala发行版的“bin”文件夹)

foo.scala:

object Main extends App {
  println ("foo")
}
要运行它,请执行以下操作:

scala -i foo.scala -e "Main.main(args)"
但是我在这里在线看到了一个Scala脚本,它不使用对象包装所有函数


请注意,在这种情况下,不能从其他文件调用函数(它们在运行时被包装在一个
对象中,并带有编译器生成的名称)。如果您“只需要一个函数定义的早午餐”,这可能不是您想要的:)好吧,Scala IDE目前不支持脚本文件,但您可以记录功能请求。

您可以编辑脚本,而无需使用IntelliJScala支持脚本样式的对象包装,而不需要类、对象或包对象。