我正在尝试params
在 Template 类中设置字段并对其进行验证,所以我可以这样做TemplateClass$new(params)
并且它会自动验证,但出现错误:
Template <- setRefClass('Template',
fields = c(
"params"
),
methods = list(
initialize = function(params){
params <<- params
validate_params()
},
validate_params = function(){
"everything okay"
}
)
)
PointsTemplate <- setRefClass('PointsTemplate',
contains = "Template",
methods = list(
initialize = function(params){
callSuper(params)
}
)
)
Error in .Object$initialize(...) :
argument "params" is missing, with no default
编辑:我似乎已经通过将类中的initialize
方法更改为. 但我不明白为什么需要这样做。Template
initialize = function(params = NULL){}
另外,我看到其他人callSuper()
在该类不包含任何超类时使用。这是什么原因?