Cuando uso el rasgo App de scala, no puedo hacer que println funcione.Scala println no funciona con el rasgo de aplicación
Este simple ejemplo imprime como se esperaba,
object HelloWorld {
def main(args: Array[String]) {
println("Hello, world!")
}
}
Pero una vez que presento el rasgo no es así,
object HelloWorld extends App {
println("Hello, world!")
}
me sale ningún error pero no se imprime nada a la consola.
Extraño. Parece una extraña limitación para el intérprete. ¿Hay alguna explicación de por qué necesito compilar la clase para que funcione? ¿Los rasgos simplemente no funcionan en el intérprete? –
Y los rasgos funcionan en el intérprete, pero la aplicación es un tipo de caso especial. A menudo se presenta como "La aplicación ajusta el código dentro de su objeto de implementación en un método principal", pero eso no es realmente, sino que pega ese código en algo llamado "delayInit", que se invoca cuando se llama al método principal en lugar de cuando se crea objeto, que normalmente es cuando se llama código desnudo dentro de una declaración de objeto. –
Ah, eso tiene sentido, gracias por la explicación. –