Я хочу внедрить систему на основе прототипов в Scala.В корне иерархии типов находится узел ROOT, у которого есть прототип, который ссылается на себя.
Следующий код демонстрирует то, что я пытаюсь сделать:
class Node(val prototype: Node) {
private def this() = this(this)
}
object Node {
val ROOT = new Node
}
К сожалению,это не компилирует ошибку: «это можно использовать только в классе, объекте или шаблоне».
Аргумент «this» для вызова основного конструктора не принимается.Это звучит разумно, поскольку объект еще не создан.Однако, поскольку прототип является неизменяемым, я не могу установить его на нуль и определить его впоследствии.
Есть предложения о том, как сделать это правильно в Scala?
Я использую Scala-2.8.0RC7.