我使用以下代码来获取文本中的单词数
.foldLeft(Map.empty[String, Float]){
(countsSource, wordSource) => countsSource + (wordSource -> (countsSource.getOrElse(wordSource, 0) + 1))}
我收到的错误是1应该是一个字符串。如果我把它放在引号中,它说它应该是一个浮点数。
我做错了什么?感谢您的帮助
答案 0 :(得分:1)
getOrElse
的签名如下:
def getOrElse[B1 >: B](key: A, default: => B1): B1
这意味着它不一定返回Map的值类型(B
),但可能返回超类B1
。在您的情况下,使用文字0
不会通知编译器您对Float
感兴趣。
使用0f
代替修复它:
l.foldLeft(Map.empty[String, Float]){
(countsSource, wordSource) => countsSource + (wordSource -> (countsSource.getOrElse(wordSource, 0f) + 1))}