自身类型是声明一个特质必须混入另外一种特质的方法,即使它并不继承。这使得不需要引入就可以使用依赖的成员。
自身类型可以缩短this
类型或者其他别名为this
的标识符。这种语法看起来像是普通的函数语法,但意思是完全不同的。
为了在特质中使用自身类型,需要写一个混入的其他特质的类型的标识符,以及一个=>
(例如someIdentifier: SomeOtherTrait =>
)。
1 | trait User { |
当我们在trait Tweeter
中写到this: User =>
,这时在tweet
方法中username
变量便处于作用域当中。这也意味着VerifiedTweeter
要继承Tweeter
的话,还必须要混入User
(使用with User
)。