I received the error "error: expected class or object definition" in Scala

I received the error "error: expected class or object definition" in Scala

我有以下代码,但我收到错误:预期 class 或对象定义。它引用了 Val 矩阵。有什么问题?

object Main{
 def squaresHaveNoDuplicates(matrix: Array[Array[Int]]) = {
    val rowBlocks = matrix.grouped(3).toArray
    println(rowBlocks)
 }
}      

val matrix= Array(
Array(0, 5, 0, 3, 0, 9, 0, 2, 6),
Array(3, 8, 9, 4, 2, 0, 1, 5, 7),
Array(4, 0, 6, 1, 0, 0, 0, 8, 9),
Array(0, 1, 3, 7, 9, 8, 0, 0, 4),
Array(0, 0, 8, 0, 0, 0, 5, 0, 0),
Array(0, 6, 0, 0, 0, 3, 0, 0, 0),
Array(0, 0, 1, 9, 3, 0, 0, 4, 0),
Array(9, 3, 5, 6, 4, 0, 8, 0, 1),
Array(0, 0, 2, 8, 7, 0, 0, 0, 5)

squaresHaveNoDuplicates(matrix)

编辑:即使我尝试了一个简单的代码,如:

val str= Array(1,2,3)

我在 REPL 中收到同样的错误。

存在简单的语法错误。

object Main extends App {
  def squaresHaveNoDuplicates(matrix: Seq[Seq[Int]]) = {
    val rowBlocks = matrix.grouped(3).toSeq
    println(rowBlocks)
  }

  val matrix = Seq(
    Seq(0, 5, 0, 3, 0, 9, 0, 2, 6),
    Seq(3, 8, 9, 4, 2, 0, 1, 5, 7),
    Seq(4, 0, 6, 1, 0, 0, 0, 8, 9),
    Seq(0, 1, 3, 7, 9, 8, 0, 0, 4),
    Seq(0, 0, 8, 0, 0, 0, 5, 0, 0),
    Seq(0, 6, 0, 0, 0, 3, 0, 0, 0),
    Seq(0, 0, 1, 9, 3, 0, 0, 4, 0),
    Seq(9, 3, 5, 6, 4, 0, 8, 0, 1),
    Seq(0, 0, 2, 8, 7, 0, 0, 0, 5)
  )

  squaresHaveNoDuplicates(matrix)

}

  1. 赋值 val matrix = Array(...) 等代码不能位于 classobject 之外。因此错误消息。
  2. 外层定义缺少括号 matrix: Array
  3. println 不会打印 Array 的内容,我将其替换为 Seq
  4. Main 不会 运行 除非它扩展 App 或定义 main 方法。 JVM 需要有一个进入程序的入口点,约定是这是一个 def main(arg: Array[String])。 Scala App 正在使用所谓的延迟初始化,但在 Scala 3. Read more
  5. 中已被淘汰