DelayedInit
scala.DelayedInit
trait DelayedInit
Classes and objects (but note, not traits) inheriting the DelayedInit
marker trait will have their initialization code rewritten as follows: code
becomes delayedInit(code)
.
Initialization code comprises all statements and all value definitions that are executed during initialization.
Example:
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
}
Should result in the following being printed:
dummy text, printed before initialization of C
this is the initialization code of C
Attributes
- See also
-
"Delayed Initialization" subsection of the Scala Language Specification (section 5.1)
- Deprecated
- true
- Source
- DelayedInit.scala
- Graph
-
- Supertypes
- Known subtypes
-
trait App
Members list
In this article