【发布时间】:2021-12-22 14:17:32
【问题描述】:
给定两张地图
val m1 = Map("a" -> "a")
val m2 = Map("a" -> 1)
作为合并这两者的结果,我想得到
Map("a" -> ("a",1))
我为此尝试了 cat semigroupal,它几乎完成了这项工作,但我必须自己为 semigroupal 创建实例,就像这样
Semigroupal.catsSemigroupalForMap[String]
然后将它们与product 方法合并。我需要做什么才能不手动创建它?例如。合并两个选项很简单
val noneInt: Option[Int] = None
val some3: Option[Int] = Some(3)
Semigroupal[Option].product(noneInt, some)
我想实现一个类似的代码来合并两个地图,但是在定义时
Semigroupal[Map]
编译器找不到任何隐含性。
【问题讨论】:
标签: scala functional-programming scala-cats