斯卡拉支持scala run xxx.scala
吗?go语言支持像这样运行
go my.go
和python支持
python my.py
但似乎
scala xxx.scala
只是语法检查,没有观察到输出或运行行为。那么有没有办法直接运行scala文件?
斯卡拉支持scala run xxx.scala
吗?go语言支持像这样运行
go my.go
和python支持
python my.py
但似乎
scala xxx.scala
只是语法检查,没有观察到输出或运行行为。那么有没有办法直接运行scala文件?
scala
跑步者的目标可以通过明确指定-howtorun
If the runner does not correctly guess how to run the target:
-howtorun what to run <script|object|jar|guess> (default: guess)
例如,假设我们有一个胖罐子,那么我们可以运行它
scala -howtorun:jar myapp.jar
默认情况下,scala
跑步者尝试猜测并运行命名目标
例如,给定以下Hello.scala
源文件
// source file Hello.scala
object Hello {
def main(args: Array[String]): Unit = {
println("Hello World!")
}
}
然后执行scala Hello.scala
应该Hello World!
由上面的第三个要点输出。
还要考虑你的 Scala 的第一行。
这似乎很容易。但是你必须使用 println 来打印一些东西。
➜ ~ cat hello.scala
println("hello, world")
➜ ~ scala hello.scala
hello, world
➜ ~ scala -Vprint:parser hello.scala
[[syntax trees at end of parser]] // hello.scala
package <empty> {
object Main extends scala.AnyRef {
def <init>() = {
super.<init>();
()
};
def main(args: Array[String]): scala.Unit = {
final class $anon extends scala.AnyRef {
def <init>() = {
super.<init>();
()
};
println("hello, world")
};
new $anon()
}
}
}
hello, world
➜ ~
或者有几种方法可以向 REPL 提供行,它会为您打印结果。
➜ ~ cat calc.scala
2 + 2
➜ ~ scala < calc.scala
Welcome to Scala 2.13.1 (OpenJDK 64-Bit Server VM, Java 11.0.3).
Type in expressions for evaluation. Or try :help.
scala> 2 + 2
res0: Int = 4
scala> :quit
➜ ~
另请参见-i
、-I
、-e
和:load
and:paste
命令。
如另一个答案所示,它还将在对象中查找 Java 样式的 main 方法。这就是您通常编译程序入口点的方式。
我绝对推荐ammoninte
这种情况。它是独立的工具,但具有更多功能并且运行良好。
在运行 scala 源代码之前,您需要使用
scalac filename.scala
命令编译 scala 代码。要执行编译的 scala 文件,您需要键入以下命令:
scala filename