Durante una recente intervista che ho avuto con una società di software piuttosto affidabile, sono stato inciampato nel tentativo di fornire una spiegazione valida a una domanda di Scala apparentemente banale. Si consideri il seguente:Cosa succede a un assegnamento di variabile quando chiamo un metodo che restituisce un'istanza di una classe di caso che detiene la suddetta variabile?
case class Person(var age: Int)
def person = new Person(10)
person.age = 3
println(person)
Questo è ciò che viene restituito dal println
dichiarazione:
Person(10)
La domanda è: perché è questo e che cosa sta accadendo quando ho assegnare 3
-person.age
?
La risposta migliore era probabilmente: "solo non usare vars in un case class". –