1

可能重复:
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  =>
...
}
4

1 回答 1

4

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

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

于 2012-12-26T08:36:37.987 回答