我有这个代码。 Lax
返回 PartnerReader.fetchParters()
。合作伙伴有一个 List[Partner]
属性,它是一个 country
,一个 String
属性是一个 dates
对象的列表。我按他们的国家对所有合作伙伴进行分组。我希望 Calendar
是 partnersByCountry
。
然后我想将国家与所有合作伙伴的所有日期相关联。 Map[String, List[Partner]]
返回 getAllDatesForPartners()
结果(希望如此)在 List[Calendar]
中。我尝试通过对 Map[String, List[Calendar]]
的分配来执行此操作,但在调用 allDatesForCountry
时失败,错误为 map
。
为什么这段代码不起作用?正确的转换方法是什么?
Cannot resolve overloaded method 'map'
答案 0 :(得分:3)
当您在 .map()
上使用 Map[?,?]
时,您会得到一系列元组。要将每个元组分解为其组成部分,您需要进行模式匹配。
.map{case (country: String, partners: List[Partner]) =>
country -> getAllDatesForPartners(partners)
}
哪种写法很长(记录在案)...
.map(tup => (tup._1, getAllDatesForPartners(tup._2)))