我正在读有关scalatest的文章,我经常碰到这种语法
trait Sample { self : FlatSpec => }
这是什么意思?请举例说明
它叫 self-type . 它意味着特质 Sample 可以从中访问所有成员 FlatSpec ,但当您基于此特性创建任何实例时,必须 mixin (合并)这个实例和 扁平规格 . 无法创建的实例 样品 因为 样品
Sample
FlatSpec
mixin
扁平规格
样品
这看起来可能有点像继承,但事实并非如此。看到了吗 this 回答
注: self 只是对当前对象的引用,而不是语法元素。你可以用任何词代替 .
self