You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala 3.0.0中使用println出现语法错误,求解决方案

问题原因与解决方法

你的代码报错是因为Scala 3.0.0中,顶层执行语句(比如val up = new Upper1()、println(uppers))不能和类定义直接共存于同一个文件。编译器期望顶层内容都是类、对象、特质或入口方法这类定义结构,而非直接执行的代码。

解决方式一:使用@main注解定义入口方法

修改代码,把执行逻辑放到带@main注解的方法中:

// saved as file Upper1.scala
class Upper1:
  def convert(strings: Seq[String]): Seq[String] =
    strings.map((s: String) => s.toUpperCase)

@main def run(): Unit =
  val up = new Upper1()
  val uppers = up.convert(List("Hello", "World!"))
  println(uppers)

执行命令不变:

% scala Upper1.scala 

解决方式二:使用对象的main方法

也可以把执行逻辑放到单例对象的main方法中:

// saved as file Upper1.scala
class Upper1:
  def convert(strings: Seq[String]): Seq[String] =
    strings.map((s: String) => s.toUpperCase)

object Upper1App:
  def main(args: Array[String]): Unit =
    val up = new Upper1()
    val uppers = up.convert(List("Hello", "World!"))
    println(uppers)

运行时可以直接执行:

% scala Upper1.scala 

或者先编译再运行:

% scalac Upper1.scala 
% scala Upper1App

内容的提问来源于stack exchange,提问作者Deb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 15:05:31