Spec-Zone.ru › Scala 3.1

Трейт scala.DelayedInit

Исходный код

@deprecated("Семантика DelayedInit может быть неожиданной. Поддержка `App` будет продолжена. См. заметки к релизу для получения более подробной информации: https://github.com/scala/scala/releases/tag/v2.11.0", "2.11.0")
trait DelayedInit

Классы и объекты (но не трейты) унаследующие трейт DelayedInit будут иметь код инициализации, переписанный следующим образом: code становится delayedInit(code).

Код инициализации включает в себя все операторы и определения значений, выполняемые во время инициализации.

Пример:

trait Helper extends DelayedInit {
  def delayedInit(body: => Unit) = {
    println("dummy text, printed before initialization of C")
    body // evaluates the initialization code of C
  }
}

class C extends Helper {
  println("this is the initialization code of C")
}

object Test extends App {
  val c = new C
}

Что должно привести к выводу:

dummy text, printed before initialization of C
this is the initialization code of C
См. также

"Подраздел «Отложенная инициализация» спецификации языка Scala (раздел 5.1)

Устаревшее
Супертипы
класс Object
трейт Matchable
класс Any
Известные подтипы
трейт App

Абстрактные методы

Исходник
def delayedInit(x: => Unit): Unit

© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/DelayedInit.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API