scala naming-conventions constants

Convenciones de nomenclatura para las constantes de Scala



naming-conventions constants (3)

Los nombres constantes deben estar en el caso camello superior. Es decir, si el miembro es definitivo, inmutable y pertenece a un objeto de paquete o un objeto , puede considerarse una constante ... El método, el valor y los nombres de las variables deben figurar en un camello inferior

http://docs.scala-lang.org/style/naming-conventions.html#constants-values-variable-and-methods

¿Cuál es la convención de nomenclatura para las constantes de Scala? Una breve búsqueda sobre las sugerencias de StackOverflow Mayúsculas CamelCase (la primera línea a continuación), pero quería verificar dos veces.

val ThisIsAConstant = 1.23 val THIS_IS_ANOTHER_CONSTANT = 1.55 val thisIsAThirdConstant = 1.94

¿Cuál es el estilo recomendado de Scala?


(Este es un comentario adicional a la respuesta de Daniel, pero lo estoy publicando como una respuesta para el beneficio del resaltado de sintaxis y el formato).

El punto de Daniel sobre el estilo de usar una letra mayúscula inicial que es importante en la semántica del lenguaje es más sutil e importante de lo que originalmente le di crédito cuando aprendí a Scala.

Considera el siguiente código:

object Case { val lowerConst = "lower" val UpperConst = "UPPER" def main(args: Array[String]) { for (i <- Seq(lowerConst, UpperConst, "should mismatch.").map(Option.apply)) { print("Input ''%s'' results in: ".format(i)) i match { case Some(UpperConst) => println("UPPER!!!") case Some(lowerConst) => println("lower!") case _ => println("mismatch!") } } } }

Ingenuamente, hubiera esperado alcanzar todos los casos en el partido. En cambio, imprime:

Input ''Some(lower)'' results in: lower! Input ''Some(UPPER)'' results in: UPPER!!! Input ''Some(should mismatch.)'' results in: lower!

Lo que sucede es que el case Some(lowerConst) sombrea lowerConst y crea una variable local del mismo nombre que se completará cada vez que se evalúe Some containing a string.

Hay formas admitidas de evitarlo, pero lo más simple es seguir la guía de estilo para nombres constantes.

Si no puede seguir la convención de nomenclatura, como señala @reggoodwin en los comentarios a continuación, puede poner el nombre de la variable en tics, como por ejemplo

case Some(`lowerConst`) => println("lower!")


El estilo oficialmente recomendado (y quiero decir oficialmente) es el primer estilo, el caso de camello con la primera letra son mayúsculas. Está claramente establecido por Odersky en Programming in Scala.

El estilo también es seguido por la biblioteca estándar, y tiene cierto apoyo en la semántica del lenguaje: los identificadores que comienzan con mayúsculas se tratan como constantes en la coincidencia de patrones.

(Sección 6.10, página 107 en la segunda edición)