scala 如何求出矩阵中所有数的总和?

nkcskrwz  于 2022-12-18  发布在  Scala
关注(0)|答案(1)|浏览(136)

我是Scala的初学者,我正在尝试构建一个函数来计算矩阵中所有数字的总和,我尝试编写了以下代码:

val pixels = Vector(
Vector(0, 1, 2),
Vector(1, 2, 3)
)

def sum(matrix: Vector[Vector[Int]]): Int = {
matrix.reduce((a, b) => a + b)
}

println(sum(pixels))

但我得到了以下错误:“value +不是Vector[Int]的成员”
我希望矩阵中包含的所有数字的总和为整数。
你能帮我解决这个问题吗?
先谢谢你!

hmmo2u0o

hmmo2u0o1#

我们将matrix定义为Vectors的一个Vector,所以reduce的参数是两个Vectors,而不是int,如果要对所有变量求和,则需要先使用flatten,以便从内部向量中提取实际的int,而且按照您编写函数的方式,它不会返回任何值,您不希望变量赋值:
def sum(matrix: Vector[Vector[Int]]) = matrix.flatten.reduce(_ + _)

相关问题