1

我正在努力使用 IntelliJ IDEA Scala 插件运行 Scala Hello World 项目。该项目的创建没有任何问题,但是当我创建应该运行的函数时,运行按钮不会出现。我不知道为什么它不起作用。

IntelliJ 版本 - 2020.3.1(社区版) Scala 插件版本 2020.3.18

  1. 我创建了 Scala/sbt 项目(我也尝试过 Scala/IDEA)
  2. 普通选项(但我也尝试过其他版本的 JDK、Scala 和 sbt)
  3. 运行按钮不见了

我的代码是:

class Hello extends App {
  println("Hello world")
}

我已经尝试创建 Scala 工作表并且它有效。

4

2 回答 2

4

当你扩展App时,它需要是 asobject Main extends App而不是class Main extends App

请参阅Scala 2.13 规范 9.5(强调我的):

程序是一个顶级对象,它有一个类型为main的成员方法(Array[String])Unit

程序的main方法可以直接定义在对象中,也可以继承。scala 库定义了一个特殊的类 scala.App,其主体充当主要方法

于 2020-12-31T17:11:22.407 回答
0

正如Suma 在他的回答中提到的,你应该使用对象,而不是类。该Hello文件的代码应为:

object Hello {
  def main(args: Array[String]): Unit = {
    println("Hello world")
  }
}

正如您在 SCALA 的第一行中所述。请注意,如果您更喜欢扩展App,所有语句都将被执行,如最后一个链接中所述:

scala 命令的参数必须是顶级对象。如果该对象扩展了 trait scala.App,则该对象中包含的所有语句都将被执行;否则你必须添加一个方法 main 作为程序的入口点。

这意味着您还有另一种选择:

object Hello extends App {
  println("Hello world")
}

我创建了一个显示示例的 gif

于 2021-01-02T07:43:55.143 回答