0

我有两张地图如下。

import scalaz._, Scalaz._

val map1: Map[String, Seq[String]] = Some value
val map2: Map[String, Seq[String]] = Somve Value

这编译得很好,一切都按预期工作。

// Compiles
map1.mapValues{_.toList} |+| map2.mapValues{_.toList}

但是这个不能编译(不能解析符号|+|),我想知道为什么?

// Doesn't compile
map1 |+| map2

更新:我发现这篇很棒的文章回答了为什么会发生编译错误,这基本上,正如评论部分中提到的那样,Seq它不是一个幺半群:为什么 List a Semigroup 但 Seq 不是?

现在我的问题是:这是否意味着我必须将我的SeqIndexedSeq有同样的问题)转换List回来SeqSeq实际上是 s ,出于性能原因IndexedSeq,我应该保留它们)。IndexedSeq除了编写我自己的地图合并代码之外,还有什么解决方法吗?

4

0 回答 0