ПочатиПочніть безкоштовно

Вчимося готувати

Третій аргумент функції R6Class() зветься public і містить функціональність, з якою працює користувач. Цей аргумент має бути списком із назвами для кожного з його елементів.

Елемент public класу R6 містить функціональність, доступну користувачеві. Зазвичай він містить лише функції.

Оновлений шаблон створення генератора класу R6 такий:

thing_factory <- R6Class(
  "Thing",
  private = list(
    a_field = "a value",
    another_field = 123
  ),
  public = list(
    do_something = function(x, y, z) {
      # Do something here
    }
  )
)

Ця вправа є частиною курсу

Об'єктно-орієнтоване програмування з S3 та R6 в R

Переглянути курс

Інструкції до вправи

Фабрику мікрохвильових печей частково визначено для вас.

  • Оновіть елемент public у визначенні, додавши метод cook.
    • Метод cook — це функція.
    • Він має мати один аргумент time_seconds, що означає час приготування.
    • У тілі методу cook передайте time_seconds до Sys.sleep() (docs), яка нічого не робить протягом заданого часу.
    • Нарешті, метод cook має викликати print() (docs) для рядка "Your food is cooked!"
  • Створіть об'єкт мікрохвильової печі з назвою a_microwave_oven, використавши метод new() фабрики microwave_oven_factory.
  • Викличте метод cook() об'єкта a_microwave_oven на 1 секунду.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Add a cook method to the factory definition
microwave_oven_factory <- R6Class(
  "MicrowaveOven",
  private = list(
    power_rating_watts = 800
  ),
  public = list(
    ___ = ___(___) {
      ___
      ___
    }
  )
)

# Create microwave oven object
a_microwave_oven <- ___

# Call cook method for 1 second
___
Редагувати та запускати код