我有一个Scala的类定义如下:理解构造斯卡拉
case class Node(factor: Factor, gate: Gate) extends GenericNode(factor)
现在,从来就没有在班上存储该通过门变量的类中的任何线,但这些方法使用它。所以可以有一个方法,如:
def compute(): factor
val p = gate.getParam()
我来自C++的背景,所以这对我来说是新的。那么,在类定义中传递的所有变量在对象实例的生命周期中是否有作用域,还是会自动被复制?
对不具有'val'关键字的非'case'类的主要构造函数参数只有在构造函数代码之外被引用时才会复制到私有字段中(例如,如果它们是从方法体中引用的或者在'lazy val'初始化表达式中)。 –
'case class'构造函数参数在默认情况下是公共的,所以不需要用val来预先设置它们。 –
谢谢你的解释! – Luca