def - Scala: ¿Por qué es necesario asignar valores a un var/val durante la declaración?
strings scala (1)
A menos que lo haya estado haciendo mal. No parece que podamos hacer cosas como:
var x;
x = 1;
en Scala, sino que debe declararlo y asignarle un valor. ¿Hay alguna razón por la que este sea el caso?
La razón obvia es ayudar a no dejar las variables sin inicializar. Tenga en cuenta que en su declaración sin inicialización, también deberá especificar el tipo.
var x: Type;
da el siguiente error:
solo las clases pueden tener miembros declarados pero no definidos (tenga en cuenta que las variables deben inicializarse para ser definidas)
En realidad, solo las clases abstractas pueden declarar miembros sin definirlos. Aún puede obtener el comportamiento deseado (variables inicializadas a un valor predeterminado) como
var x: Type = _
Si Type
es un tipo de referencia, x
será null
. Este escenario es útil, por ejemplo, en el caso de que un método de fábrica complete la inicialización de un objeto después de la construcción del objeto.