首页 > 解决方案 > Scala案例类类型问题

问题描述

我试图理解一些我被给予调试的 Scala 代码,以及为什么它不能按预期工作。(ps newbe alert 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]。我无法更改案例类,那么如何让类型匹配?

标签: 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.map(ColNmbr)
}  

推荐阅读