Scala代码在不使用scalac编译的情况下运行?
根据Scala教程,我们需要使用Scala代码在不使用scalac编译的情况下运行?,scala,Scala,根据Scala教程,我们需要使用scalac filename.Scala编译Scala代码,然后再使用Scala filename执行它。但是当我尝试使用scala filename.scala时,它运行并得到了输出 为什么会这样?那么运行代码不需要使用scalac编译?有人能解释一下吗 谢谢。 scala-help非常有用。上面说 A file argument will be run as a scala script unless it contains only se
scalac filename.Scala
编译Scala代码,然后再使用Scala filename
执行它。但是当我尝试使用scala filename.scala时,它运行并得到了输出
为什么会这样?那么运行代码不需要使用scalac编译?有人能解释一下吗
谢谢。
scala-help
非常有用。上面说
A file argument will be run as a scala script unless it contains only
self-contained compilation units (classes and objects) and exactly one
runnable main method. In that case the file will be compiled and the
main method invoked. This provides a bridge between scripts and standard
scala source.
感谢Dennis提供的指针。运行
scala
命令实际上首先在后台编译,然后运行生成的程序。scala命令的帮助中解释了此行为
您可以通过执行
scala-help
命令来获得帮助。scala可以用作一种脚本语言,并且可以从较新的版本(不记得是哪个版本)上获得帮助,这是可能的,运行代码时甚至不定义类或类object@DoomProg有趣。当你说“运行代码而不定义类或对象”时,你指的是Scala工作表吗。试着用println(“hello”)创建一个文件,并用scala命令运行它。如果你有Scala2.10和更高版本,我认为你应该能够得到这个信息。所以,正如你所说的,应该会生成类文件。这些文件用于运行。但我找不到在当前目录下生成的任何类文件。那么这个类文件应该驻留在哪里呢?@Maximin in mainmemory@sschaef谢谢如果我能得到一些链接或指向文档的指针来解释这一点,那就太好了。有趣的是,我所涵盖的几乎所有教程都没有引用这句话。@Maximin我认为这不在记忆上。ScriptRunner
类调用编译器,在JVM退出时使用该编译器将其删除。临时目录路径因操作系统而异。还可以使用-save选项保存jar文件。