在java中你会像下面那样声明变量:
String s = "Hello";
int i = 42;
Person p = new Person("hello");
每个变量声明都包含了类型。
相比之下,在scala中有两种类型的变量:
- val创建一个不可变的变量(跟java中的 final 一样)
- var创建一个可变的变量
scala中可以像下面那样声明变量:
val s = "Hello"
var i = 42
val p = new Person("hello")
scala可以通过等式右边的代码推断出数据的类型。当然你也可以显示的指定变量类型:
val s: String = "Hello"
var i: Int = 42
val和var的不同点
val和var的不同点为:val创建的变量是不可变的,var创建的变量是可变的。由于val字段不可变,有些人称val字段为值(values)而不是变量。
对val变量重新赋值会报错,而var不会。