发布网友 发布时间:2022-04-24 10:41
共1个回答
热心网友 时间:2023-10-10 10:37
var:变量值可变;val:变量值不可变
var var0 = 0,var0的值可以进行后续修改,如:var0 = 1
val val0 = 0,var0的值不可以修改,val0 = 1是不能编译通过的
mutable:容器的元素可变;immutable:容器的元素不可变
val mutable0 = collection.mutable.Set(0),可以继续追加元素,如mutable0 += 1
val immutable0 = collection.immutable.Set(0),immutable0 += 1是不能编译通过的
两者的差别在于,如果是用val定义的,即使使用mutable集合,也只能对集合的元素进行修改,如mutable0 += 1;而不能让变量指向另一个集合,如mutable0
= collection.mutable.Set(1)
而如果是用var定义的则可以让变量指向另一个集合,如
var immutable0 = collection.immutable.Set(0)
immutable0 = collection.immutable.Set(1)