Scala 3.2.0版:顶层定义的开头非法

siotufzp  于 2022-11-23  发布在  Scala
关注(0)|答案(1)|浏览(287)

斯卡拉人!
所以我在学习scala,无论何时我使用解释器,一切都很好。但是如果我尝试编写脚本,并使用scala命令运行它,每次都会发生同样的事情。所以这是我遇到的一个具体问题,来自《Scala编程》一书的一个例子。

val greetStrings: Array[String] = new Array[String](3)
greetStrings(0) = "Hello "
greetStrings(1) = ", "
greetStrings(2) = "world"

for (i <- 0 to 2)
  print(greetStrings(i))

会显示错误:

-- [E103] Syntax Error: /Users/USER/scala/pa.scala:2:0 -------------
2 |greetStrings(0) = "Hello "
  |^^^^^^^^^^^^
  |Illegal start of toplevel definition
  |
  | longer explanation available when compiling with `-explain`
-- [E103] Syntax Error: /Users/USER/scala/pa.scala:7:2 -------------
7 |  print(greetStrings(i))
  |  ^^^^^
  |  Illegal start of toplevel definition
  |
  | longer explanation available when compiling with `-explain`
2 errors found
Error: Errors encountered during compilation

实际上,无论我尝试运行什么代码,都会给我这个错误。
作为参考,我从来没有用java写过代码,所以我不熟悉任何细节。我主要是用f#和python写的。

ui7jx7zq

ui7jx7zq1#

如果要使用scalascala3)运行它,则必须添加一个@main入口点:

@main def entryPoint() =
  println("Hello, World")

如果您坚持要在最上层使用陈述式,请使用scala-cli

相关问题