Scala更新映射错误
我正在尝试编写方法Scala更新映射错误,scala,dictionary,concatenation,Scala,Dictionary,Concatenation,我正在尝试编写方法addWordToMap,如果关键字出现次数等于occ,则应该在map值的列表中添加一个单词w。我不明白为什么编译器会说map.updated(occ,map.apply(occ)++w)returnmap[occurrences,List[Any]]。我的想法是连接有一些问题,但对我来说似乎很正确。谢谢大家! type Word = String type Occurrences = List[(Char, Int)] def addWordToMap(map: Map[Oc
addWordToMap
,如果关键字出现次数等于occ
,则应该在map值的列表中添加一个单词w
。我不明白为什么编译器会说map.updated(occ,map.apply(occ)++w)
returnmap[occurrences,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)
}
您正在查找的是
:+
,而不是+
它使用
++
进行编译,原因有很多:看起来您正试图连接两个集合,因此编译器会隐式地将字符串转换为字符集合,最终得到的集合的元素类型是Char
和string
的最小上界,这是Any
如果有效,请尝试,地图已更新(occ,地图(occ):+w)