Изменить значение свойства во время выполнения экземпляра объекта - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь изменить значение свойства на протяжении всего процесса создания экземпляра объекта.Это является частью механизма загрузки, где значение 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.
...