0
library(R6)

Person<-R6Class("Person",
    public=list(
      name=NULL,
      age=NULL,
      initialize=function(name,age){
        self$name<-name
        self$age<-age
      },
      GrowUP1=function(){
        self$publicGrow()
      },
      publicGrow=function(){
        self$age<-self$age+1
      },
      GrowUP2=function(){
        self$privateGrow()
      }
    ),
    private=list(
      privateGrow=function(){
        self$age<-self$age+1
      }
    )
)

Person<-Person$new('Tom',20)
Person$age
Person$GrowUP1()
Person$age
Person$GrowUP2()    

这是我的示例代码。我运行最后一个代码Person$GrowUP2()。但是,我得到了错误Error in Person$GrowUP2() : attempt to apply non-function

我不知道为什么这段代码没有运行。我想使用私有方法来修改公共成员。如何

4

1 回答 1

0

使用以下方法调用私有函数private

GrowUP2=function(){
        private$privateGrow()
        }

Person<-Person$new('Tom',20)
Person$GrowUP1()
Person$GrowUP2() 
Person$age

[1] 22
于 2019-01-10T02:03:02.463 回答