6
予想通り、これは動作しますが:MIXIN二回
trait A
trait B extends A
object C extends A with B
以下の収率illegal cyclic reference involving trait B
:
package cyclictest {
trait A
trait B extends A
}
package object cyclictest extends A with B
が起こっ
What's?
最初にBから継承してください。コンパイラがオブジェクトの基底クラスを線形化できないことがあります。 – Dirk
@Dirk、確かに、あまりにも最初にそれを考えるのは簡単です。それにもかかわらず、私はそれが目的か何らかの種類のバグかどうかまだ疑問に思っていますか? –
私はあなたのパッケージオブジェクトの定義は、パッケージ自体で定義された特性を拡張することはできないと思う。スカラーの仕様では次のように書かれています: "パッケージオブジェクトは、パッケージpで定義されている 最上位のオブジェクトまたはクラスの1つと同じ名前のメンバーを定義すべきではありません。名前の矛盾がある場合、プログラムの動作は現在不確定です。 _ "私はあなたがしていることは、形質AとBを再定義することに等しいと思う –