在Scala中,val用于创建常量,Scala常量的命名约定是使用UpperCamelCase约定。 (https://docs.scala-lang.org/style/naming-conventions.html#constants-values-variable-and-methods)
对此规则的概括应该是所有val应该在UpperCamelCase中。
即如果使用val关键字声明了变量,则其名称应在UpperCamelCase中。但是,我在Scala网站上看到了利用此规则的示例。
我在这里想念什么?
答案 0 :(得分:4)
简单地输入:
在程序运行时,常数只有一个值。它要么在编译时固定,例如Pi
,HoursInDay
,或者是顶级object
中的不可变值。
val
是不可变的变量。设置后便无法更改,但是每次调用包含代码的代码时,都可以将其设置为不同的值。
答案 1 :(得分:1)
编码样式建议将final
常量大写:
如果成员是最终,则是不可变的,并且属于包对象 或对象,可以将其视为常量
例如,请注意如何将scala.math.PI
定义为final
:
@inline final val Pi = java.lang.Math.PI
val
在对象内部是最终的,因为它们不能被覆盖,因此即使MyConstant
没有明确声明为final
,也可以使用以下代码:
object Container {
val MyConstant = ...
}
如果val
不是最终的,则样式建议使用小写字母命名。
答案 2 :(得分:1)
val
不仅仅用于定义常量,而且还用于定义值。
因此,如Scala文档在https://docs.scala-lang.org/style/naming-conventions.html#constants-values-variable-and-methods中所述:
要定义常量,您应使用UpperCamelCase
样式,在以下情况下我们将这些项目告知常量:
如果成员是最终,不可变,并且它属于包装对象或对象,可以认为是常量。
例如:
object Container {
val MyConstant = ...
}
方法,值和变量名称应采用lowerCamelCase
样式,例如:
val myValue = ...
def myMethod = ...
var myVariable = ...