我是Scala的初学者,我正在尝试构建一个函数来计算矩阵中包含的所有数字的总和。
val pixels = Vector(
Vector(0, 1, 2),
Vector(1, 2, 3)
)
def sum(matrix: Vector[Vector[Int]]): Int = {
val sum: Int = matrix.reduce((a, b) => a + b)
}
println(sum(pixels))
但我得到以下错误:“value +不是Vector[Int]的成员”
你能帮我解决这个问题吗
提前感谢您!
所以我试了这个:
val pixels = Vector(
Vector(0, 1, 2),
Vector(1, 2, 3)
)
def sum(matrix: Vector[Vector[Int]]): Int = {
val sum: Int = matrix.reduce((a, b) => a + b)
}
println(sum(pixels))
我想把矩阵中包含的所有数字的总和取为整数。
1条答案
按热度按时间jaxagkaj1#
我们将
matrix
定义为Vectors
的Vector
,所以reduce
的参数是两个Vectors
,而不是int。如果要对所有变量求和,需要先使用flatten
,从内部向量中提取实际的int。而且,您编写的函数不会返回任何内容。您不希望对变量赋值:def sum(matrix: Vector[Vector[Int]]) = matrix.flatten.reduce(_ + _)