【发布时间】:2018-06-02 17:40:32
【问题描述】:
我正在尝试理解一些我被给予调试的 Scala 代码,以及为什么它不能按预期工作。 (ps newbe alert wrt wrt Scala)。
case class ColNmbr(colNmbr: Int)
def getValidColumns(m: Matrix): List[ColNmbr] = {
var l1 = matrix.zipWithIndex
var l2 = l1.filter(tp => !checkCol(tp._1)).map(_._2)
println("result:" + l2)
l2
}
矩阵只是一个列表的列表。
该代码应该返回所有矩阵列的列索引列表,这些列索引通过了返回布尔值的有效性检查。与 println 一样,数据是正确的,但存在类型错误,因为 l2 是 List[Int] 而不是 List[ColNmbr]。我无法更改案例类,那么如何让类型匹配?
【问题讨论】:
-
Return a list of user defined class type Scala 的可能重复项。是来自一些目前正在运行的 Scala 在线课程还是什么?还是只是一个奇怪的巧合?
-
如果您想对您的代码进行最小的调整,只需将您的
map替换为map(t => ColNmbr(t._2))。 -
是的,可以看到相似之处,但只是巧合。无论如何更喜欢我的解决方案。但是非常感谢 - 成功了。
-
checkCol和Matrix.zipWithIndex在哪里? -
它们都在同一个对象中。 “checkCol”只是一个带有布尔返回的健全性检查。
标签: scala