Sì, final val
è la sintassi corretta, con Daniel's caveats. Tuttavia, nel giusto stile di Scala le tue costanti dovrebbero essere CamelCase con una prima lettera maiuscola.
L'inizio con una lettera maiuscola è importante se si desidera utilizzare le costanti nella corrispondenza del modello. La prima lettera è come il compilatore Scala distingue tra pattern costanti e pattern variabili. Vedere la Sezione 15.2 di Programming in Scala.
Se un oggetto val
o Singleton non inizia con una lettera maiuscola, per usarlo come un modello di corrispondenza è necessario racchiuderlo in apici inversi (``
)
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
}
Avete dimenticato due punti importanti: deve essere staticamente risolto al momento della compilazione - Non sono sicuro che Scala esegua l'aritmetica letterale in fase di compilazione e, molto facilmente, non deve avere un tipo_. Se lo dichiari 'final val myConst: Int = 5', non sarà considerato come una costante. –
Hai un riferimento per _it non deve avere un tipo_? –