Ich habe zwei Züge:Legendes DI in Scala
trait A {
def a
}
Und:
trait B { this: A =>
def b
}
Jetzt habe ich versucht, trait B
, da dies zu nutzen:
def method(bTrait: B) = bTrait.a //error
aber es weigert sich, zu kompilieren . Ich dachte, wir könnten uns darauf verlassen, dass jede Implementierung von B
immer A
verlängert. Was ist los mit dir? Warum kompiliert es nicht?
Was meinen Sie bei der Kompilierung zur Verfügung gestellt werden? Wenn ich keine Klasse mache, die beide Merkmale implementiert, bekomme ich den Fehler _llegal vererbung, Selbsttyp-BMpl entspricht nicht A_. Es bedeutet also, dass beide Eigenschaften implementiert werden sollten. – user3663882
@ user3663882 Es bedeutet, dass Sie, um mit einer Instanz von "B" zu arbeiten, etwas vom Typ "A" hineinmischen müssen. –
Ah ..., verstanden. Vielen Dank. – user3663882