Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在scala.collection.immutable.List中将值重新分配给val_List_Scala - Fatal编程技术网

在scala.collection.immutable.List中将值重新分配给val

在scala.collection.immutable.List中将值重新分配给val,list,scala,List,Scala,我是scala的新手。单击读取列表方法的源代码时,Intellij IDEA会向val发送重新赋值的消息。在readObject方法中,有一行: current.tl = Nil 其中t1是val 那么为什么允许在那里使用这条线呢 scala.collection.immutable.List中的 final case class ::[B](private var hd: B, private[scala] var tl: List[B]) extends List[B] { privat

我是scala的新手。单击读取列表方法的源代码时,Intellij IDEA会向val发送重新赋值的消息。在
readObject
方法中,有一行:

current.tl = Nil
其中t1是val


那么为什么允许在那里使用这条线呢

scala.collection.immutable.List中的

final case class ::[B](private var hd: B, private[scala] var tl: List[B]) extends List[B] {

private[scala]var tl:List[B]
-var前面的修饰符tl,这就是为什么可以修改tl

您需要解释这个问题。什么是重新分配的GetSign?在哪里?什么是
readObject
?当前值可能是val而不是t1。只是猜测一下。@Jatin
current.t1=Nil
中的
t1
被重新分配
t1
是scala.collection.immutable包的
final case类::[B]
中的val
readObject
是从scala.collection.immutable.List中的第361行定义的私有方法。Scala版本是2.10.x为什么您认为
current.tl
的类型是
val
,而不是
var
?类
最终案例类的声明:[B](private-var-hd:B,private[scala]var-tl:List[B])扩展了List[B]
似乎证明了这一点。不确定为什么IntelliJ中会显示错误,但我尝试在代码中使用类似的结构,没有发现任何错误。@Norbert Radyk刚刚发现,
t1
是scala源代码github中的一个变量,而在IntelliJ中,按control并单击
t1
将显示
t1
是val
最终案例类::[B](private val hd:B,private[scala]val tl:scala.collection.immutable.List[B])
。它仍然无法解释IntelliJ在第368行和第372行显示“重新分配到val”错误的原因。IDE问题?@Yury感谢您的回答。