scala里关于val和var和可变/不可变的理解

**

scala里关于val和var和可变/不可变的理解

**
众所周知,scala里面定义属性分为val和var,不变和可变,而定义对象也分为可变和不可变,例如map和set,但是这俩者是有区别的,list和array是不可变的。
val定义一个属性,例如
val list = List(“Hello”,“你好”);
这时候使用list += “Scala”方法会报错,而换成 var list = List(“Hello”,“你好”)就可以使用 list += “Scala”,其实对象并没有改变,也不能改变,前面说了list 不能改变,此处而是对象指向地址改变了,重新初始化了一个list对象。
所以,val 和var修饰变量,意思说的是内存地址可否改变,而对象的可变和不可变,表示的是该对象的实际内容是否可变。

你可能感兴趣的:(scala,scala)