R中的ReferenceClasses和对象组成

时间:2016-01-22 16:36:36

标签: r reference-class object-composition

我想在R中做基本的对象组合,我正面临着这个简单的问题。我有2个R5课程,“Lambda”和“Composition” “Composition”类具有类“Lambda”的属性。无法创建“组合”类:".Object$initialize(...) : argument "lambda" is missing, with no default" 如果lambda在initialize方法中有一个默认值,它就可以工作:initialize = function(lambda=1){ 但我不希望这样。

setRefClass(
    "Lambda",
     fields =  c(
       lambda = "numeric"
        ),

      methods=list(
        initialize = function(lambda){
        check_lambda (lambda)
         lambda <<- lambda
        },

       check_lambda = function(new_lambda){
          print ("checking...")
          return(T)
        }
      )
 )

setRefClass(
  "Composition",
    fields =  c(
      object_lambda = "Lambda"
    ),
  methods=list(
    initialize = function(object_lambda){
      object_lambda <<- object_lambda
    }
  )
)

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我找到了一个问题的解决方案:将字段设置为我的班级“作文”的“任意”:

 setRefClass(
  "Composition",
  fields =  c(
    object_lambda = "ANY"
  ),
  methods=list(
    initialize = function(object_lambda){
      object_lambda <<- object_lambda
    }
  )
)