【发布时间】:2023-04-11 10:30:01
【问题描述】:
我是 Scala 的新手,我有以下代码:
case _ => {
val tempA = col2.head
val collect = col2.drop(1)
orderCol(collect).foreach {
tmpCol => (0 until 10).foreach(
a => (0 until 12).foreach {
b => {
val tmpBuild = TmpBuilder.build(tempA, b, a)
if (isFiltered(tmpBuild, tmpCol)) {
(tmpBuild :: tmpCol).sortBy(r => (r.tempA, r.B))
}
}
}
)
}
// for {
// tmpCol <- orderCol(collect)
// a <- 0 until 10
// b <- 0 until 12
// tmpBuild = TmpBuilder.build(tempA, b, a)
// if (isFiltered(tmpBuild, tmpCol))
// } yield (tmpBuild :: tmpCol).sortBy(r => (r.tempA, r.B))
}
注释代码的部分工作(编译)正常。由于我正在学习 Scala,因此我想将已注释的代码重写为未注释的代码,例如:
orderCol(collect).foreach {
tmpCol => (0 until 10).foreach(
a => (0 until 12).foreach {
b => {
val tmpBuild = TmpBuilder.build(tempA, b, a)
if (isFiltered(tmpBuild, tmpCol)) {
(tmpBuild :: tmpCol).sortBy(r => (r.tempA, r.B))
}
}
}
)
}
但是我收到以下错误:
Error:(18, 31) type mismatch;
found : Unit
required: Set[List[test.TmpBuild]]
orderCol(collect).foreach {
你知道 foreach 循环有什么问题吗?我应该使用任何地图功能吗? 我将不胜感激。谢谢!
【问题讨论】:
-
这个
case看起来断章取义。考虑以易于重现问题的方式重写您的问题。这里有一些提示:MCVE.