Sí, final val
es la sintaxis correcta, con Daniel's caveats. Sin embargo, en el estilo apropiado de Scala, sus constantes deben ser camelCase con una primera letra en mayúscula.
Comenzar con una letra mayúscula es importante si desea usar sus constantes en la coincidencia de patrones. La primera letra es cómo el compilador Scala distingue entre patrones constantes y patrones variables. Ver la Sección 15.2 de Programming in Scala.
Si un objeto val
o Singleton no comienza con una letra mayúscula, para utilizarlo como un perfil de compatibilidad debe encerrarlo entre comillas sencillas (``
)
x match {
case Something => // tries to match against a value named Something
case `other` => // tries to match against a value named other
case other => // binds match value to a variable named other
}
Se le olvidó dos puntos importantes: debe ser estáticamente resuelto en tiempo de compilación - No estoy seguro de que Scala haga una aritmética literal en tiempo de compilación - y, muy fácil de equivocar, _no debe tener un tipo_. Si declara 'final val myConst: Int = 5', no se tratará como una constante. –
¿Tiene una referencia con respecto a _no debe tener un tipo_? –