Sono confuso sul motivo per cui Scala si sta lamentando di questo codice. Ho due classi che dipendono l'una dall'altra. Quando provo a creare una nuova istanza di A
senza una dichiarazione di tipo, il codice non verrà compilato.Il valore ricorsivo xxx richiede il tipo in Scala
class A(b:B) {
}
class B(a:A){
}
val y = new A (new B(y)); // gives recursive value y needs type
val z:A = new A (new B(y)); // ok
Perché il compilatore non conosce il tipo di y
quando ho dichiarato come new A
?
Correggetemi se ho torto, l'ultima riga non deve essere anche "val y: A = nuova A (nuova B (y))?"? Sono un po 'confuso perché quel 'z' è lì. – Dean