我正在玩Scala。我需要的仅仅是函数定义的早午餐,但在Eclipse中,我只能创建.scala
文件,其中函数def
必须位于对象或类中。在Eclipse中创建Scala脚本文件
但我看到一个在线的Scala脚本,here,它不使用对象来包装所有的功能。
我当然可以用一个对象来包装我所有的功能,但我只是想知道它是否是必需的。谢谢!
我正在玩Scala。我需要的仅仅是函数定义的早午餐,但在Eclipse中,我只能创建.scala
文件,其中函数def
必须位于对象或类中。在Eclipse中创建Scala脚本文件
但我看到一个在线的Scala脚本,here,它不使用对象来包装所有的功能。
我当然可以用一个对象来包装我所有的功能,但我只是想知道它是否是必需的。谢谢!
但我看到Scala的剧本在网上,在这里,不使用对象来包装的所有功能。
注意,在这种情况下,该函数不能从其他文件称为(它们被包装在一个object
与编译器生成的名称在运行时)。如果你“只需要一堆函数定义”,这可能不是你想要的:) AFAIK,Scala IDE目前不支持脚本文件,但你可以登录功能请求here。
据我所知,不可能完全在范围之外编写函数或变量。也就是说它是可能将它们写在类/对象定义之外。你只需要将它们包装在package object中。发生的事情基本上是,不是将函数/变量绑定到给定的类或对象,而是将其绑定到包。例如:
package test
package object inside {
def hello = println("Hello from outer space!")
class Foo {
hello // call the function from the package
}
}
现在,当您构建Foo时,您应该打印出“来自外太空的Hello!”。
不知道我在说什么,我可以想象上面提到的脚本版本是可行的,因为脚本是在某种环境中运行的。所以想象一下,一些类加载脚本,然后将其包装到一个对象中并运行它。这意味着一种类似于上述情况的情况:功能仍然“属于”某个地方。
Scala支持脚本样式,无需任何类,对象或包对象。 –
您可以编辑脚本而不包装在IntelliJ中的对象中 –