我试图在运行实例化对象的整个过程中更改属性的值。这是下载机制的一部分,其中值 20 设置为执行 20 行数据的第一次下载,其余下载将设置为 1 行。它是用 R 面向对象编程编写的,使用包 R6。
该值被记住是因为它存储在对象中(之前从类中实例化)。
脚本正在从 Rstudio(版本:1.1.456)触发。
观察:
该脚本在第一次运行时将属性值从 切换NULL
为。20
问题:
20
该值在所有脚本运行期间保持不变。
想要的行为:
第一次运行时,该值应以 开头NULL
并交换为20
。
第二次运行脚本,属性值应该开始20
对 if 语句做出反应并将值更改为1
.
从第 3 次运行开始,以及所有其余运行,该值应为星号,1
并且 if 语句将找不到任何匹配项,将值保持为1
.
# ----------------------------------------
# Classes.
# ----------------------------------------
Download <- R6Class("Download",
public = list(
# --------------------------------------------
# Initializer:
# --------------------------------------------
initialize = function(value = NULL) {
self$value <- value
},
# --------------------------------------------
# Properties:
# --------------------------------------------
value = NULL,
# --------------------------------------------
# Functions:
# --------------------------------------------
run = function() {
self$value_switcher()
},
value_switcher = function() {
if(is.null(self$value)) {
self$value = 20
} else if(self$value == 20) {
self$value = 1
}
cat("Your property value is :", self$value)
}
) # Closure of list.
) # Closure of class.
download <- Download$new() # Instantiate the class.
download$run() # Run object methods.