如何使用 Scala 的 List::groupBy 的结果?

时间:2021-02-14 23:36:46

标签: scala

我有这个代码。 Lax 返回 PartnerReader.fetchParters()。合作伙伴有一个 List[Partner] 属性,它是一个 country,一个 String 属性是一个 dates 对象的列表。我按他们的国家对所有合作伙伴进行分组。我希望 CalendarpartnersByCountry

然后我想将国家与所有合作伙伴的所有日期相关联。 Map[String, List[Partner]] 返回 getAllDatesForPartners() 结果(希望如此)在 List[Calendar] 中。我尝试通过对 Map[String, List[Calendar]] 的分配来执行此操作,但在调用 allDatesForCountry 时失败,错误为 map

为什么这段代码不起作用?正确的转换方法是什么?

Cannot resolve overloaded method 'map'

1 个答案:

答案 0 :(得分:3)

当您在 .map() 上使用 Map[?,?] 时,您会得到一系列元组。要将每个元组分解为其组成部分,您需要进行模式匹配。

.map{case (country: String, partners: List[Partner]) =>
  country -> getAllDatesForPartners(partners)
}

哪种写法很长(记录在案)...

.map(tup => (tup._1, getAllDatesForPartners(tup._2)))
相关问题