Неявная передача значений из содержащих классов в поля классов?

Рассмотрим класс школы. Если бы мы добавили поле "Ученик" в школьный класс, можно ли было бы просто передать ссылку на объект "Школьник" в объект "Ученик".

Так что вместо того, чтобы делать

class School() {
   val pupil:Pupil = new Pupil(this)
}

Мы могли бы сделать это

class School() {
   val pupil:Pupil = new Pupil()
}

И все равно сможет получить доступ к школьной справке с объекта ученика. Я думаю, что последствия Scala могут помочь?

1 ответ

Например,

object ImplicitConstructorParameter extends App {
  class Pupil(implicit val school: School)

  class School {
    implicit val school: School = this
    val pupil: Pupil = new Pupil
  }

  val school = new School

  println(school.pupil.school.eq(school))
}

печать true

Другие вопросы по тегам