我有一個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