In verschiedenen Scala-Literaturen sehe ich einige Anmerkungen vom Typ "this" und andere, die "self" verwenden:
trait A { this: B => ... }
trait A { self: B => ... }
Gibt es einen wirklichen Unterschied zwischen "diesem" oder "Selbst"? Ist es überhaupt wichtig, welchen Namen Sie verwenden? Ist das genauso gültig?
trait A { foo: B => ... }
trait A { self: B, C => ... }
?with
Schlüsselwort in der selbsteingabenden Anmerkung verwenden. Zum Beispieltrait A { self: B with C => ... }
_: B =>
der Einfachheit halber auch für den Nicht-Alias-Fall tunEs gibt einen Unterschied, der sich
this
immer auf das Objekt bezieht, das durch die innerste Vorlage definiert ist.Wenn Sie also Ihren Selbsttyp aufrufen
foo
, können Sie ihn immer noch als bezeichnenthis
(es sei denn, Sie befinden sich in einer inneren Vorlage. In diesem Fallthis
bezieht er sich auf das von ihm definierte Objekt - und es sei denn, Sie geben den inneren nicht an Die Vorlage gibt den gleichen Namen selbst ein), aber offensichtlich nicht umgekehrt.quelle