Ответ 1
Именование по умолчанию для самого класса this
. Вы можете заменить его на t
на t =>
Это полезно, если ваш класс содержит подклассы, и вам нужен доступ к встроенной саморегуляции.
Без t =>
в вашем примере вы должны написать что-то вроде этого:
abstract class Thing {
type G <: Group { type A = this.A }
}
Group { type A = this.A }
является подтипом, поэтому this
будет ссылаться только на специализацию группы не на предмет предмета. Наверное, вы не получите того, что хотите. Если вам нужен доступ к собственной ссылке Thing, вы должны разрешить конфликт имен, назначив себе ссылку другому имени
abstract class Thing { another_this = >
type G <: Group { type A = another_this.A}
}