Есть ли способ в scala использовать промежуточный ранний инициализатор?
Вот что я пытаюсь скомпилировать:
trait A { val valueA: Int = 0 }
trait B {
val valueB: Int
println(valueB)
}
class C extends A with { val valueB = valueA } with B
РЕДАКТИРОВАТЬ: ответить на вопрос Луиса
С помощью Scales можно организовать осветители с помощью конструкторов признаков. Я хотел бы параметризовать один подфикс и раннюю инициализацию с полем из суперфикса.
Вот еще один пример, который лучше относится к реальному самому масштабному случаю:
class Test extends FreeSpec {
trait CommonFixture {
val commonCaseValue: Int = 1
}
abstract trait SpecialCaseFixture {
val specialCaseValue: Int
}
"special case test #1" in new CommonCaseFixture with { val specialCaseValue = commonCaseValue } with SpecialCaseFixture {
// all fixtures fields are accessible here
}
}