从同一 class 中的方法调用方法

Call method from method inside same class

我正在尝试在基于 class 的对象中创建流结构。 我有 4 个方法(其中 3 个方法应该从方法 [运行()].

调用

问题:

假设您在同一个 object/class.

中,您是否应该能够从另一个方法调用一个方法?

什么有效:

我能够运行使用正确的输出一个接一个地执行以下方法:

游戏$part_1()

游戏$part_2()

游戏$part_3()

错误:

当我发出 [game$运行()] 时,出现以下错误:

Error in part_1() : could not find function "part_1"

想要的行为:

我希望对象能够 运行 方法由其他方法触发(所有方法都在同一个 class 中)。

if (!"package:R6" %in% search()) {
  library(R6)
}


# Class


Game <- R6Class("Game",

    public = list(

        # Properties:

        a     = 0,
        b     = 0,
        sum   = 0,


        # Functions:

        run = function() {
            part_1()
            part_2()
            part_3()
        },

        part_1 = function() {
            self$a = 10
            return(self$a)
        },

        part_2 = function() {
            self$b = 20
            return(self$b)
        },

        part_3 = function() {
          self$sum = self$a + self$b
          return(self$sum)
        }

     )

)
# Instantiate an object base on a class.
game <- Game$new()

# Run function that runs through all other functions.
game$run()

您应该可以将 self 添加到方法调用中:

run = function() {
                    self$part_1()
                    self$part_2()
                    self$part_3()
                  }