El lenguaje Scala requiere que inicialice la variable de instancia antes de usarlo. Sin embargo, Scala no proporciona un valor predeterminado para su variable. En su lugar, usted tiene que configurar su valor de forma manual mediante el subrayado de comodín, que actúa como un valor por defecto, de la siguiente manera¿Por qué el lenguaje Scala requiere que inicialices una variable de instancia en lugar de confiar en un valor predeterminado?
var name:String = _
Lo sé, lo sé ... Puedo definir un constructor en la definición de clase, que toma como parámetro de nuestra variable de instancia, por lo Scala no forzar su inicialización como se muestra abajo
class Person(var name:String)
sin embargo, i necesidad de declarar que en el cuerpo porque i necesidad de utilizar una anotación de Java cuyo ElementType es el campo o método; es decir, solo se puede aplicar a una variable de instancia o método declarado en el cuerpo de nuestra clase.
Pregunta: ¿Por qué el lenguaje Scala requiere que inicialices una variable de instancia, ya sea un valor predeterminado _ o lo que quieras, declarada en el cuerpo de una clase en lugar de confiar en un valor predeterminado?
La preferencia de Martin sería mi suposición :-) Por lo menos es explícita y los 2 caracteres adicionales (4 con espacios) no son terriblemente desalentadores. Parece una tontería que Java (un lenguaje muy * verboso *) permita omitir la tarea. Además, parece engañoso decir que los "argumentos del constructor" (no sé cómo se llaman realmente: - /) no están forzados a inicializarse, lo que es más cierto es cuando el objeto se crea una instancia. –