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