r - 从同一类中的方法调用方法
问题描述
我正在尝试在基于类的对象中创建流结构。我有 4 个方法(应该从方法 [run()] 调用 3 个方法。
问题:
假设您在同一个对象/类中,您是否可以从另一个方法调用一个方法。
什么有效:
我能够以正确的输出逐一运行以下方法:
游戏$part_1()
游戏$part_2()
游戏$part_3()
错误:
当我发出 [game$run()] 时,我收到以下错误:
Error in part_1() : could not find function "part_1"
想要的行为:
我希望对象能够运行由其他方法触发的方法(所有方法都在同一个类中)。
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()
}
推荐阅读
- flutter - 如何使用条形码结果在flutter中打开webview
- javascript - 打字稿用函数创建自己的类型
- python - 在 django admin 中显示 ManyToMany 关系的值
- python - 如果我安装了 python3 和 Kivy,为什么会显示语法错误?
- c++ - 如果构造函数抛出 RAII 和成员?
- java - 如何从更深的层将对象绑定到数组 1
- python - 为什么 a.insert(0,0) 比 a[0:0]=[0] 慢得多?
- ant - 如何显示蚂蚁模式集
- java - Android Studio 导入新模块时项目不显示在项目结构中
- javascript - 将块作用域中的变量值用作全局作用域中的简单变量 - JAVASCRIPT。在火灾商店