我们先来看看Java中的变量与常量。在Java中,常量是指在程序运行期间值不能被改变的量,使用final关键字修饰。如
代码语言:javascript复制final double PI = 3.141592653;
第一次赋值后,后面不可以再对其再次赋值。Java中的变量在程序运行中可以动态的改变其值,如
代码语言:javascript复制int a = 1; int b = 2; a = a b;
与Java类似的,Scala中对应有 val、var对应常量和变量的定义。
val 常量
Scala中,使用 val 关键字修饰常量,常量一旦赋值,则后续不允许再次进行赋值操作。
代码语言:javascript复制val PI = 3.141592653;
PI = 3.14;
第二次对 常量 PI 进行赋值时,会提示编译错误: reassignment to val ,意思是不允许 对 val 修饰的常量重新赋值。
var 变量
Scala 中可以使用 var 来修饰变量。实例中,我们以 phoneNo 变量表示手机号,phoneNo 值 初始化为 18611110000, 因为是 var修饰的可以再次对其赋值 17022224444。
代码语言:javascript复制package com.byron4j.scala
/**
*
* 展示Scala 变量的方式
* val: 相当于java中的final常量,一旦给val变量赋值,则val变量不可以再做修改。
* var: var变量相当于Java中的变量,就算赋值后也能再次对其进行修改。
*/
object VariableDemo {
def main(args: Array[String]): Unit = {
val PI = 3.141592653;
//PI = 3.14; //ERROR: reassignment to val
val name = "Byron";
println("My name is " name);
var phoneNo = "18611110000";
println("My phoneNo is " phoneNo);
phoneNo = "17022224444";
println("My phoneNo is " phoneNo);
}
}
Scala 中的表达式
以下代码段,用于输出数组a的元素。
代码语言:javascript复制val a = Array(1, 2)
for( key <- a ){
println("遍历输出数组值:" key);
}
Scala 是一门函数式编程语言,在Scala中大量使用了 val 常量的定义, 在 Scala 中应尽量减少 var 的使用。