我正在尝试编写方法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)
}
您要找的是:+
,而不是++
。
它使用++
进行编译的原因有很多:看起来你试图连接两个集合,所以编译器隐式地将字符串转换为字符集合,最终得到的集合的元素类型是Char
和String
的最小上界,即Any
。