Scala更新Map错误



我正在尝试编写方法addWordToMap,如果键的出现次数等于occ,则该方法应将单词w添加到映射值的列表中。我不明白为什么编译器说map.updated(occ, map.apply(occ)++w)返回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

最新更新