将元素添加到super scala时出现语法错误
我在超级方法上有些麻烦。我需要在map中定义一个函数,它可以增加键值对中的值将元素添加到super scala时出现语法错误,scala,map,super,traits,Scala,Map,Super,Traits,我在超级方法上有些麻烦。我需要在map中定义一个函数,它可以增加键值对中的值 trait AddOneToMap[K] extends Map[K,Long] { abstract override def get(key: K): Option[Long] = super.get(key) + 1.0} 但我犯了一个错误:类型不匹配 found : Double(1.0) required: String abstract override def get(key: K): Opt
trait AddOneToMap[K] extends Map[K,Long] {
abstract override def get(key: K): Option[Long] = super.get(key) + 1.0}
但我犯了一个错误:类型不匹配
found : Double(1.0)
required: String
abstract override def get(key: K): Option[Long] = super.get(key) + 1.0
如何解决这个问题^ 让我们将函数扩展到:
def get(key: K): Option[Long] = {
val x: Option[Long] = super.get(key)
x + 1.0
}
现在很明显,您正在向选项[Long]
添加一个Double
。(您的意思是添加一个Long
而不是Double
?)
如果查找成功,您要做的是将1添加到查找中
下面是实现这一点的惯用方法:
def get(key: K): Option[Long] = super.get(key).map(_ + 1L)