首页 文章

Scala列表和val和var的实用程序[重复]

提问于
浏览
0

这个问题在这里已有答案:

如果我在写作

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

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

    重新声明也适用于变量

    val a = 1  
    val a = 2
    

相关问题