Scala更新地图错误

Scala updating Map error

我正在尝试编写方法 addWordToMap,如果键出现次数等于 occ,则应将单词 w 添加到地图值的列表中。而且我不明白为什么编译器会说 map.updated(occ, map.apply(occ)++w) return Map[Occurences, List[Any]]。我的想法是连接有一些问题,但对我来说似乎很正确。谢谢!

type Word = String
type Occurrences = List[(Char, Int)]
def addWordToMap(map: Map[Occurrences, List[Word]], 
  w: Word, occ: Occurrences): Map[Occurrences, List[Word]] = {
  map.updated(occ, map.apply(occ)++w)
}

您正在寻找 :+,而不是 ++

它与 ++ 一起编译是出于一些令人不快的原因:看起来你试图连接两个集合,所以编译器隐式地将字符串转换为字符集合,你最终得到元素类型为 CharString 的最小上界的集合,即 Any.