scala 中 println 出现语法错误

Deb*_*Deb 1 scala

我尝试运行以下代码,但在 Scala 3.0.0 上出现错误:

// saved as file Upper1.scala

class Upper1:
  def convert(strings: Seq[String]): Seq[String] =
    strings.map((s: String) => s.toUpperCase)

val up = new Upper1()
val uppers = up.convert(List("Hello", "World!"))
println(uppers)
Run Code Online (Sandbox Code Playgroud)
% scala Upper1.scala 
Run Code Online (Sandbox Code Playgroud)
-- [E080] Syntax Error: /Users/Deb/Desktop/Temp/Upper1.scala:7:0 ------------
7 |println(uppers)
  |^^^^^^^
  |Expected a toplevel definition
1 error found
Error: Errors encountered during compilation
Run Code Online (Sandbox Code Playgroud)

我运行不正确吗?

gia*_*zzi 7

在顶层,您可以只编写定义(例如,val, def, class, ...),但不能编写表达式(例如,1 + 1, 或一般函数调用)。

因此,如果你想在执行过程中执行println(uppers),你可以编写程序的main:

@main
def main(): Unit =
  println(uppers)

Run Code Online (Sandbox Code Playgroud)