Scala的"This"和MapLike

duc*_*thd 3 scala map this scala-collections

假设我想用一个具体的实现IntIntMap来扩展Scala的MapLike特性.为此,我需要实现以下方法,

def get(key: A): Option[B]
def iterator: Iterator[(A, B)]
def + [B1 >: B](kv: (A, B1)): This
def -(key: A): This
Run Code Online (Sandbox Code Playgroud)

什么This类型?我的重写方法签名应该是,

override def +=(kv: (Int, Int)): IntIntMap = {
  // logic
}
Run Code Online (Sandbox Code Playgroud)

还是只是scala.reflect.This?课程定义怎么样?应该是,

class IntIntMap(...) extends MapLike[Int,Int,This] { ... }
Run Code Online (Sandbox Code Playgroud)

或完全不同的东西?

Jea*_*let 5

你应该扩展MapLike[Int, Int, IntIntMap],并This成为IntIntMap.