Em várias publicações da Scala, vejo algumas anotações do tipo auto usando "this" e outras usando "self":
trait A { this: B => ... }
trait A { self: B => ... }
Existe alguma diferença real entre usar "this" ou "self"? Importa o nome que você usa? Isso é tão válido?
trait A { foo: B => ... }
trait A { self: B, C => ... }
?with
palavra - chave na anotação de digitação automática. Por exemplotrait A { self: B with C => ... }
_: B =>
para o caso não alias para a simplicidadeHá uma diferença em que
this
sempre se refere ao objeto definido pelo modelo mais interno.Portanto, se você chamar seu tipo próprio
foo
, ainda poderá se referir a ele comothis
(a menos que, é claro, esteja em um modelo interno; nesse caso,this
ele se referirá ao objeto definido por ele - e a menos que você não dê o interior o modelo digita o mesmo nome), mas obviamente não o contrário.fonte