En varias publicaciones de Scala veo algunas anotaciones de auto-tipo que usan "this" y otras que usan "self":
trait A { this: B => ... }
trait A { self: B => ... }
¿Hay alguna diferencia real entre usar "this" o "self"? ¿Importa en absoluto qué nombre usas? ¿Es esto tan válido?
trait A { foo: B => ... }
trait A { self: B, C => ... }
?with
palabra clave en la anotación autoescrita . Por ejemplotrait A { self: B with C => ... }
_: B =>
para el caso no alias para simplicidadHay una diferencia en que
this
siempre se refiere al objeto definido por la plantilla más interna.Entonces, si llama a su auto-tipo
foo
, aún podría referirse a él comothis
(a menos, por supuesto, que esté en una plantilla interna en cuyo casothis
se referirá al objeto definido por él, y a menos que no le dé el interno auto-teclea el mismo nombre) pero obviamente no al revés.fuente