这种自我意味着什么?

时间:2012-12-26 08:14:37

标签: scala

  

可能重复:
  Scala this aliasing and self type

我遇到了这段代码。

abstract class Tagged(private var t: Int) { self =>
...
}

我知道以下意味着Tagged和B的依赖关系,但无法理解上述问题,是否可以解释其中的差异?感谢

abstract class Tagged(private var t: Int) { self:B  =>
...
}

1 个答案:

答案 0 :(得分:4)

第一个表单引入了this的别名;第二种形式限制了自我类型。

例如,在scala.Enumeration中,thisenum用作嵌套类的Enumeration.this的别名。在规范的更改日志附录中,它表示别名被设计为替换语法。