从同一 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()
}
我正在尝试在基于 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()
}