Scala 类型不匹配,找到Int必需字符串

Scala 类型不匹配,找到Int必需字符串,scala,Scala,我有一个奇怪的问题。我试图编写一个简单的隐式类: private implicit class CounterMap[A](map: Map[A, Int]) { def updateCounter(k: A): Map[A, Int] = map + (k → map.getOrElse(k, 0) + 1) } 但是,当我尝试编译时,会出现以下错误: 错误:类型不匹配; 发现:Int(1) 必需:字符串 map+(k)→ 图.盖托莱尔斯(k,0)+1) 这篇文章看起来很相似,但

我有一个奇怪的问题。我试图编写一个简单的隐式类:

private implicit class CounterMap[A](map: Map[A, Int]) {
  def updateCounter(k: A): Map[A, Int] =
    map + (k → map.getOrElse(k, 0) + 1)
}
但是,当我尝试编译时,会出现以下错误:

错误:类型不匹配; 发现:Int(1) 必需:字符串 map+(k)→ 图.盖托莱尔斯(k,0)+1)

这篇文章看起来很相似,但我并不觉得我犯了同样的错误。我对在Scala中使用隐式类和泛型还相当陌生,所以这里可能遗漏了一些明显的东西。任何关于我为什么会犯这个错误的帮助或解释都会令人惊讶


提前感谢。

问题似乎在于括号。将内部表达式括在括号中,如下所示:

map + (k -> (map.getOrElse(k, 0) + 1))

你提到的其他帖子有不同的问题。在那篇文章中,
Int
被用作类型参数,这里不是这样的。

箭头实际上很好,但是你的回答确实揭示了我的代码有什么问题。问题是我缺少加法运算的括号。如果你修改一下,我会接受你的答案。啊,好的。我想
是从某处复制/粘贴的。很高兴知道它对你有用,而且已经存在很长时间了。谢谢你指出这一点。我不知道。更新了我的答案。