Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 这种自我类型是什么意思?_Scala - Fatal编程技术网

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
很有用。是的,枚举就是这种情况,因此有一个例子。