Scala列表和val和var的实用程序

时间:2017-06-25 10:35:39

标签: arrays scala list

如果我正在写作

val a = 1
然后它会给我

a : Int = 1

如果我正在写

a = 2

它会说重新分配给val,我很好用,好吧我们不能将值重新分配给scala中的val声明变量。

现在,如果我们来scala数组,如果我们将变量声明为val并指定长度为3的Scala List,那么我们不能更改长度,但我们可以更改Scala数组中各个元素的值。好吧也有意义,因为在这种情况下变量仍然是不可变的,但数组内部是可变的。

现在问题是scala列表,如果我声明了像

这样的scala列表
val OneTwo = List(1,2)

将导致他输出以下内容:

oneTwo: List[Int] = List(1,2)

好的,现在试试这个:

val OneTwo = List("One","Two")

将导致他输出以下内容:

oneTwo: List[String] = List("One","Two")

我不知道为什么list变量,即oneTwo是可变的,我们可以将它重新分配给一种新的对象。为什么它的行为就像java String一样,对象变为不可变,但分配给它的变量可以分配给一个新的String对象。如果是这样,那么在这里将其声明为val的效用是什么。

1 个答案:

答案 0 :(得分:0)

我猜你是在scala REPL中尝试这个。 您无法重新分配val,但可以在REPL中重新声明它。

重新声明也适用于变量

VolumeProviderCompat