Scala 这种自我类型是什么意思?
可能重复:Scala 这种自我类型是什么意思?,scala,Scala,可能重复: 我遇到了这段代码 abstract class Tagged(private var t: Int) { self => ... } 我知道下面的意思是Tagged和B的依赖关系,但我无法理解上面的一个,有人能解释这个区别吗?谢谢 abstract class Tagged(private var t: Int) { self:B => ... } 第一个表单引入了此的别名;第二种形式约束self类型 例如,在scala.Enumeration中,thisenum
我遇到了这段代码
abstract class Tagged(private var t: Int) { self =>
...
}
我知道下面的意思是Tagged和B的依赖关系,但我无法理解上面的一个,有人能解释这个区别吗?谢谢
abstract class Tagged(private var t: Int) { self:B =>
...
}
第一个表单引入了此的别名;第二种形式约束self类型
例如,在scala.Enumeration中,
thisenum
用作枚举的别名。该来自嵌套类。在规范的变更日志附录中,它说别名是作为替换语法设计的。第一种形式为此
引入了别名;第二种形式约束self类型
例如,在scala.Enumeration中,thisenum
用作枚举的别名。该来自嵌套类。在规范的变更日志附录中,它说别名是作为替换语法设计的。Nit:我将后者写成self:B
Nit:我将后者写成self:B
我还想补充一点,当您有嵌套类,并且希望从内部类访问外部类的this
时,别名非常有用。是的,枚举就是这种情况,因此有一个例子。我还想补充一点,当您有嵌套类并且希望从内部类访问外部类的this
时,别名this
很有用。是的,枚举就是这种情况,因此有一个例子。