声明变量时,类型可以省略(即类型推断)
即可以像下图一样,声明变量时,可以写变量的类型,也可以不写,Scala有类型推断机制,会推断变量的类型。
object scala_var {
def main(args: Array[String]): Unit = {
var a: String = "123"
var b = 5
}
}
确定类型后,就不能再修改,说明Scala是强类型语言
在声明/定义一个变量时,可以使用var或者val来修饰,var修饰的变量可以改变它的值,但是val修饰的就不能修改它的值
val修饰的对象属性在编译后,等同于加上final,所以不可改变其值
var修饰的对象引用可以改变,val修饰的则不可改变,但其对象的状态却是可以改变的
var修饰的对象可以改变其属性,如下所示:
object scala_var {
def main(args: Array[String]): Unit = {
va dog = new Dog()
dog.name = "456"
}
}
class Dog{
var name = "123"
}
但是如果在Dog类里面的name属性时val则不可以改变其属性:
变量声明时必须要初始化
变量初始化不同于Java,Java是使用这个变量前才初始化就行,而Scala必须在声明之时就要初始化