フィールドを設定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
EDIT:クラスのinitialize
メソッドをに変更することで解決したようです。しかし、なぜこれが必要なのかわかりません。Template
initialize = function(params = NULL){}
callSuper()
また、クラスにスーパークラスが含まれていない場合に他の人が使用するのを見てきました。これの理由は何ですか?