如何修复scala中发现的不匹配错误:Seq[scala.collection.immutable.Seq requir



这是错误:

<console>:123: error: type mismatch;
found   : Seq[scala.collection.immutable.Seq[scalismo.geometry.Landmark[scalismo.geometry._3D]]]
required: scala.collection.Seq[scalismo.geometry.Landmark[scalismo.geometry._3D]]
val rigidTrans = LandmarkRegistration.rigid3DLandmarkRegistration(landmarks, reflandmarks.toSeq)

以下代码片段:

val alignedSet = toAlign.map { mesh =>    
val landmarks = pointIds.map{id => Landmark("L_"+id, mesh.point(PointId(id)))}
val rigidTrans = LandmarkRegistration.rigid3DLandmarkRegistration(landmarks, reflandmarks.toSeq)
mesh.transform(rigidTrans)
}

如果仔细查看,简而言之,错误为found Seq[Seq[X]]; required Seq[X]。虽然您的文章没有显示错误位置(控制台中的插入符号^(,但我怀疑这是针对reflandmarks.toSeq的。因此CCD_ 4给出了CCD_。要展平嵌套序列,可以使用flatten,因此使用reflandmarks.toSeq.flatten可能会起作用。

请注意,由于子类型,在需要collection.Seq的地方传递参数collection.immutable.Seq总是可能的,因此这与实际问题无关。

最新更新