私はこれをしたい:
trait Renderable {
def render: String
}
trait Parens extends Renderable {
abstract override def render = "(" + super.render + ")"
}
object Foo extends Renderable with Parens {
def render = "Hello"
}
ただし、線形化の順序によってParensがFooの後に配置されるため(もちろん、Fooは常に来る)、ParensはFoo.renderにアドバイスできません。
私はこれを行うことになります:
trait FooRender {
def render = "Hello"
}
object Foo extends FooRender with Parens {
}
しかし、それが物事を壊すので、時々私は本当にそれをしたくありません。私の知る限り、線形化の順序だけが邪魔になりますが、それを変更する方法がわかりません。何がこれをきれいにするのでしょうか?