在Scala

时间:2017-05-30 18:09:54

标签: scala

我有一个名为Fork的数据类型,它是不可变的。 Fork实例可以包含另一种数据类型Body的一个或多个实例。 我想逐个将Body个实例列表插入到同一个Fork实例中。每次插入Body后,都会返回Fork的新实例。

我尝试过以下代码,但是它出错了。

bodies: Seq[Body] // this is from the constructor 
val fk = Fork(nw, ne, sw, se) // new instance of a Fork is created 
val fkl = bodies.map(b => { val fk: Fork = fk.insert(b) }) // trying to 
// insert a list of Body instances to the same instance of Fork

Error:(131, 46) forward reference extends over definition of value fk
        val fkl=bodies2.map(b=>{ val fk:Fork=fk.insert(b)})

1 个答案:

答案 0 :(得分:4)

您可以使用foldLeft

"/anotherPackage/windows.png"

它将以原始val fkl = bodies.foldLeft(fk)((f,b) => f.insert(b)) 实例开始,然后为每个主体fk将主体插入fork并返回更新的fork