scala理解可变与不可变
我们定义变量的时候分为var可变变量和val不可变变量。
我们使用容器的时候也分为可变容器和不可变容器。
List和Tuple本身就是不可变的,set和map分为可变和不可变的,默认为不可变。
//不报错
var list = scala.collection.immutable.List(“Hello”,“World”);
list += “Scala”;
//报错
val list = scala.collection.immutable.List(“Hello”,“World”);
list += “Scala”;
//不报错
var list = scala.collection.mutable.ListBuffer(“Hello”,“World”);
list += “Scala”;
//不报错
val list = scala.collection.mutable.ListBuffer(“Hello”,“World”);
list += “Scala”;
首先理解immutable和mutable,前者为不可变,后者为可变。这里面的可变性指的是在原List上是否可变,但是如果我改变了该List值,赋值给另外一个List,那是可以的。
接下来理解val,var,前者为不可变,后者为可变,这个指的的后面List的指向,val指向的地址值不可变
还没有评论,来说两句吧...