我是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]的成员”
我希望矩阵中包含的所有数字的总和为整数。
你能帮我解决这个问题吗?
先谢谢你!
1条答案
按热度按时间hmmo2u0o1#
我们将
matrix
定义为Vectors
的一个Vector
,所以reduce
的参数是两个Vectors
,而不是int,如果要对所有变量求和,则需要先使用flatten
,以便从内部向量中提取实际的int,而且按照您编写函数的方式,它不会返回任何值,您不希望变量赋值:def sum(matrix: Vector[Vector[Int]]) = matrix.flatten.reduce(_ + _)