Scala是否支持“scala run xxx.scala”?Go语言支持像这样运行:
go my.go
Python 支持
python my.py
但是看起来
scala xxx.scala
仅进行语法检查,没有输出或运行行为。那么有没有一种直接运行Scala文件的方法?
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
运行器会尝试猜测并以以下方式运行指定的目标:
main
方法的已编译类Main-Class
属性的 jar 文件例如,给定以下 Hello.scala
源文件:
// source file Hello.scala
object Hello {
def main(args: Array[String]): Unit = {
println("Hello World!")
}
}
如果执行 scala Hello.scala
,则应按照上文第三个项目的要求输出 Hello World!
。
同时请参阅 Scala 的首行代码。
scalac Hello.scala
,然后再运行 scala Hello
才能得到输出(即编译源代码)。在你的情况下,源代码是如何编译的? - mjkrause看起来很简单。但是你需要使用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
和:paste
命令可供参考。
正如其他答案所示,它也会在对象中查找类似Java风格的主方法。这就是通常编译程序入口的方式。
scalac filename.scala
命令编译 Scala 代码。
要执行已编译的 Scala 文件,您需要键入以下命令:scala filename
。#! /usr/bin/env scala
在脚本开头编写 Scala 脚本。 - Luis Miguel Mejía Suárez