Автоматически удалять объект R6 - PullRequest
0 голосов
/ 05 января 2020

Я создал класс банковского счета с пакетом R6. Он имеет личный баланс (недоступный после генерации) и методы для снятия и внесения определенной суммы, а также метод печати. (Hadley Wickham 14.3.3)

BankAccount <- R6::R6Class("BankAccount", public = list(
  # Functions to withdraw and deposit.
  deposit = function(amount){
    private$balance <- private$balance + amount
  },
  withdraw = function(amount){
    if (amount < private$balance){
    private$balance <- private$balance - amount
    }
    else {
      stop("Amount withdrawn is greater than available balance by", -(private$balance - amount))
    }
  },
  initialize = function(initial_balance){
    private$balance <- initial_balance
  },
  print = function(){
    cat("Bank balance is equal to", private$balance)
  }
  ),
  private = list(
    balance = NULL
  )
)

В настоящее время, если я создаю новый объект R6 и вызываю функцию изъятия с суммой, превышающей ее первоначальный баланс, функция остановится и напечатает сообщение. Вместо этого я хотел бы, чтобы вновь созданный объект был удален напрямую. Как мне этого добиться?

...