Skip to content

Instantly share code, notes, and snippets.

@igstan
Last active August 29, 2015 14:03
Show Gist options
  • Save igstan/238455b45336433d3d0a to your computer and use it in GitHub Desktop.
Save igstan/238455b45336433d3d0a to your computer and use it in GitHub Desktop.
trait A {
val count: Int
val elements: Array[String] = new Array(count)
}
class C extends A {
override val count = 10
}
val c = new C
println(c.elements.length) // Surprise, it's 0.
// -----------------------------------------------------------------------------
// Using an early definition.
// -----------------------------------------------------------------------------
trait A {
val count: Int
val elements: Array[String] = new Array(count)
}
class C extends { // early definition
override val count = 10
} with A
val c = new C
println(c.elements.length) // 10