对Scala中不可变数据结构的同一实例进行多次插入
我有一个名为对Scala中不可变数据结构的同一实例进行多次插入,scala,Scala,我有一个名为Fork的数据类型,它是不可变的。Fork实例可以包括另一种数据类型的一个或多个实例Body。 我想将Body实例的列表逐个插入到相同的Fork实例中。每次插入正文后,将返回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 =
Fork
的数据类型,它是不可变的。Fork
实例可以包括另一种数据类型的一个或多个实例Body
。
我想将Body
实例的列表逐个插入到相同的Fork
实例中。每次插入正文
后,将返回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)})
你可以用
它将从原始的fk
实例开始,然后对于每个bodyb
将body插入fork并返回您可以使用的更新的fork
它将从原始的fk
实例开始,然后对于每个bodyb
将body插入fork并返回更新的fork
val fkl = bodies.foldLeft(fk)((f,b) => f.insert(b))