asume este código Java:Necesitas ayuda con las variables de instancia de Scala
public class A {
public A(String g) {
x += g.length();
}
private int x = 0;
}
Si creo una instancia de A, de esta manera:
A a = new A("geo");
después de esta llamada, el valor de x será 3. ¿Qué estoy haciendo mal en mi código de Scala?
class A(val g:String) {
x += g.length
var x:Int = 0
}
object x extends Application {
val x = new A("geo")
println(x.x)
}
Esto imprime 0. Supuse que cuando el compilador alcanza el var x:Int = 0
, el cuerpo del constructor principal ha terminado. ¿Me equivoco? ¿De qué otra manera podría declarar variables de instancia en Scala (suponiendo que no las quiera en mi constructor)?
Ok, esperemos y veamos. – Geo
Cada línea de código que no está dentro de una definición (cuerpo de método) es código de constructor. El código de inicialización de Val y var está incluido en eso y el constructor es la acumulación de arriba a abajo de todo ese código. Tenga en cuenta que esto incluye cosas como method * calls * intercaladas entre val, var y def * definitions *. –